4
是否必须不断声明弱引用来断开块内块的保留循环?保留块内部块的循环
__weak typeof(self) weakSelf = self;
[self setMyBlock:^(id obj, NSUInteger idx, BOOL *stop) {
typeof(self) strongSelf = weakSelf;
[strongSelf doSomething];
[strongSelf setMyBlock:^(id obj, NSUInteger idx, BOOL *stop) {
//do I need to create another weak reference to strongSelf for this block?
[strongSelf doSomething];
}];
}];
块可以使用它们定义的函数中的变量作用域,在你的情况下,你可以在内部块中使用外部块的weakSelf,不要创建另一个weakSelf –
顺便说一下,强烈的舞蹈错误。你还需要测试'strongSelf'是否为零。在这种情况下,没有什么区别,但总的来说这是个好主意。 – matt
@matt弱弱舞蹈的正确方法是什么? –