0

我是 OS X 开发的新手,在获取委托回调时遇到问题,我怀疑这可能是内存问题。我有一个 NSViewController。在它的 init 方法中,我设置了一个自定义 NSObject,如下所示:

        MyObject *aManager = [[MyObject alloc] initManager];
    __theManager = aManager;
    self.theManager.delegate = self; 
    [aManager release];

我设置为非原子的委托,分配。查看断点,我应该在我的视图控制器中看到回调,但这永远不会发生。有任何想法吗?

4

1 回答 1

2

__theManager = aManager;应该是self.theManager = aManager;,假设theManager是保留属性。您遇到的问题是保留计数为+1 alloc] init];。不会增加该计数,因为 iVar 是直接设置的。当您释放它时,保留计数变为 0,因此它被释放。aManager__theManager = aManager;

于 2012-05-07T10:57:38.170 回答