首页 > block内存管理的问题

block内存管理的问题

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

非常常用的一个动画block.

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


所谓“引用循环”是指双向的强引用,所以那些“单向的强引用”(block 强引用 self )没有问题

建议看以下链接,第39题,说的非常详细
《招聘一个靠谱的iOS》面试题参考答案


如果是arc不会


如果是arc,那就会产这个问题~mrc不会。

因为你用的成员变量对编译器来说是这样子的:self->member。所以在arc模式下,虽然只是用了成员变量,其实也有self指向这个变量,仍然有内存泄露的问题。

【热门文章】
【热门文章】