搜尋

首頁  >  問答  >  主體

objective-c - block記憶體管理的問題

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

非常常用的一個動畫block.

那麼,在動畫 block 中使用了成員變量,會導致 retain cycle 嗎?

PHP中文网PHP中文网2871 天前785

全部回覆(3)我來回復

  • 曾经蜡笔没有小新

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

    所謂「引用循環」是指雙向的強引用,所以那些「單向的強引用」(block 強引用 self )沒有問題

    建議看以下鏈接,第39題,說的非常詳細
    《招聘一個可靠的iOS》面試題參考答案

    回覆
    0
  • 过去多啦不再A梦

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

    如果是arc不會

    回覆
    0
  • phpcn_u1582

    phpcn_u15822017-04-24 16:02:38

    如果是arc,那就會產這個問題~mrc不會。

    因為你用的成員變數對編譯器來說是這樣子的:self->member。所以在arc模式下,雖然只是用了成員變量,其實也有self指向這個變量,還是有記憶體洩漏的問題。

    回覆
    0
  • 取消回覆