[英]Why do blocks create a retain cycle when referencing self?
我读过许多有关创建保留周期的块的文章。 但是为什么要进行保留周期呢? 块运行后不会释放参考吗?
[UIView animateWithDuration:5
animations:^{
self.variable = somevalue;
}];
例如,如果执行上述操作,对self的引用将被释放,对吗?
我已经看到上面的代码块创建了两个强大的参考。 一种是从对象到块,另一种是从块到对象。 有人可以向我解释为什么周期不中断吗? 代码运行后,循环不应该中断吗?
如果一个对象包含一个块,而该块包含该对象,则为一个循环。
如果其他人持有该块并且该块持有该对象,则只有对象直接或间接持有该块的所有人时,才会有一个循环。
块在运行时不会自毁,因此仅当释放了块时才会中断循环。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.