objective-c - block内存管理的问题
PHP中文网
PHP中文网 2017-04-24 16:00:38
0
3
763
[UIView animateWithDuration:0.2 animations:^{
    self.movingView.transform = CGAffineTransformMakeTranslation(200, 0);
}];

非常常用的一个动画block.

那么,在动画 block 中使用了成员变量,会导致 retain cycle 吗?

PHP中文网
PHP中文网

认证0级讲师

全員に返信(3)
曾经蜡笔没有小新

いわゆる「参照サイクル」は双方向の強参照を指すため、「一方向の強参照」(強参照自身をブロックする)は問題ありません

次のリンク、質問 39 を読むことをお勧めします。これは非常に詳細です
「信頼できる iOS の採用」面接の質問の参考回答

いいねを押す +0
过去多啦不再A梦

円弧なら無理

いいねを押す +0
phpcn_u1582

arcの場合、この問題は発生します〜mrcでは発生しません。

使用するメンバー変数はコンパイラーにとって次のように見えるためです: self->member.したがって、arc モードではメンバー変数のみが使用されますが、実際には self がこの変数を指しているため、メモリ リークの問題が依然として残ります。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート