假设我已经创建了一个弱引用对象,使用方式为
__weak typeof(self) weakSelf = self;
[self doABlockOperation:^{
...
}];
在该块内,如果我嵌套另一个块:
[weakSelf doAnotherBlockOperation:^{
[weakSelf doSomething];
}
它会创建一个保留周期吗?我需要创建另一个对weakSelf的弱引用吗?
__weak typeof(self) weakerSelf = weakSelf;
[weakSelf doAnotherBlockOperation:^{
[weakerSelf doSomething];
}
self
在块执行时仍将是一个有效的对象。但是,不能保证它不会在内部块执行时被释放,这就是为什么它应该捕获一个强引用的原因。 - newacct