検索

ホームページ  >  に質問  >  本文

objective-c - block内存管理的问题

[UIView animateWithDuration:0.2 animations:^{
    self.movingView.transform = CGAffineTransformMakeTranslation(200, 0);
}];

非常常用的一个动画block.

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

PHP中文网PHP中文网2814日前768

全員に返信(3)返信します

  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-04-24 16:02:38

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

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

    返事
    0
  • 过去多啦不再A梦

    过去多啦不再A梦2017-04-24 16:02:38

    円弧なら無理

    返事
    0
  • phpcn_u1582

    phpcn_u15822017-04-24 16:02:38

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

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

    返事
    0
  • キャンセル返事