我有一个带有接收完成处理程序的方法的对象。
在完成处理程序中,我想释放这个对象(使用ARC分配nil。)
但是从调用者的范围(要释放的对象)调用完成处理程序,因此它不会被释放。
例如
@implementation MyClass
-(void)doSomeWork
{
self.objectToRelease someLongRunningMethod:^{
// did complete
// [self finish]; // maybe should be "weak self"
}
}
-(void)finish
{
// clean up of this object
self.objectToRelease = nil; // not released
}
@end