这里有很多关于避免使用块的保留循环的文章,但是在使用类和类方法时呢?假设我有这样的课程:
// MyClass.h
+ (void)doSomethingAsynch:(void (^)(void))block;
+ (void)doSomethingElse;
来电者想说:
[MyClass doSomethingAsynch:^{
[MyClass doSomethingElse];
}
调用者必须声明 MyClass 的 unsafe_unretained 副本吗?还是像单例这样的类,不会增加它的保留计数?既然我们希望它一直存在,我们是否将一个类的保留计数发送到月球是否重要?