[UIView animateWithDuration:0.2 animations:^{ self.movingView.transform = CGAffineTransformMakeTranslation(200, 0); }];
非常常用的一个动画block.
那么,在动画 block 中使用了成员变量,会导致 retain cycle 吗?
认证0级讲师
いわゆる「参照サイクル」は双方向の強参照を指すため、「一方向の強参照」(強参照自身をブロックする)は問題ありません
次のリンク、質問 39 を読むことをお勧めします。これは非常に詳細です「信頼できる iOS の採用」面接の質問の参考回答
円弧なら無理
arcの場合、この問題は発生します〜mrcでは発生しません。
使用するメンバー変数はコンパイラーにとって次のように見えるためです: self->member.したがって、arc モードではメンバー変数のみが使用されますが、実際には self がこの変数を指しているため、メモリ リークの問題が依然として残ります。
次のリンク、質問 39 を読むことをお勧めします。これは非常に詳細です
「信頼できる iOS の採用」面接の質問の参考回答
円弧なら無理
arcの場合、この問題は発生します〜mrcでは発生しません。
使用するメンバー変数はコンパイラーにとって次のように見えるためです: self->member.したがって、arc モードではメンバー変数のみが使用されますが、実際には self がこの変数を指しているため、メモリ リークの問題が依然として残ります。