0

完了ハンドラーを受け取るメソッドを持つオブジェクトがあります。

完了ハンドラーで、このオブジェクトを解放したいと思います (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
4

0 に答える 0