0

我有一个带有接收完成处理程序的方法的对象。

在完成处理程序中,我想释放这个对象(分配 nil,使用 ARC)。

但是完成处理程序是从调用者(要释放的对象)的范围内调用的,因此它不会被释放。

例如

@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
4

0 回答 0