[英]weak variable with a strong reference in a block: does not create a retain cycle?
[英]Can two weak variables create a retain cycle?
在ARC中,如果A对B的引用很强,而B对A的引用很强,则会有一个保留周期。
下面的代码还会创建保留周期吗?
__weak MyClass *weakSelf = self;
[self doSomething:^{
weakSelf.someVariable = YES;
[weakSelf doSomething:^{
weakSelf.someVariable = YES;
}];
}];
使用ARC,会复制weakSelf指针,但由于它是弱指针,因此指针的副本不会导致保留计数增加。 因此,不,它不会创建保留周期。
不,不会。 实际上,如果您不保留该对象,并且由于某种原因在MyClass
对象被释放后将调用该块,则会导致运行时崩溃
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.