0

次のような構造があります (ARC コード):

// load an object into an ivar using a block
self->objectLoader = [MyObject loadOnSuccess:^(MyObject *object) {

    // reference self from the block, so self is retained
    self->_object = object;

    // try to dereference the loader
    self->objectLoader = nil;        
}

問題は、self が完全に解放されないため、オブジェクトの割り当てが解除されないことです。self を weakSelf バージョンに置き換えると、オブジェクトの割り当てが正常に解除されます。

「保持している」ブロックが解放され、オブジェクトの割り当てを解除できるように、ivar を nil する方法はありますか?

4

0 に答える 0