2016-06-20 1 views
0

これらのコードのいずれかによってブロックがメモリに永久に割り当てられますか?私は、外側の強いスピナーへのブロック内の参照を意味しますか?これはブロックリークを起こしますか?

UIActivityIndicatorView *spinner = (UIActivityIndicatorView *)[cell viewWithTag:1]; 

[[NSOperationQueue mainQueue] addOperationWithBlock:^{ 
    [spinner startAnimating]; 
}]; 

または

UIActivityIndicatorView *spinner = (UIActivityIndicatorView *)[cell viewWithTag:1]; 

[self.queue addOperationWithBlock:^{ 
    [spinner startAnimating]; 
}]; 

答えて

0

ありません、それはしません。スピナーはそのスーパービューによって所有されています。可変スピナーはおそらくローカル変数なので、範囲外になると直ちにスピナーを保持しなくなります。同様に、ブロックは一度実行されてから停止するので、終了するとスピナーは保持されません。

+0

しかし、スピナーがその行に割り当てられていると仮定すると、漏れてしまうでしょうか?ああ、私は周りの反対の方法を考えていた...スピナーブロックを保持します。 –

関連する問題