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 归零,以便释放它“持有”的块并且可以释放对象?

4

0 回答 0