11

我在 dealloc 中有一个带有此方法调用的类:

- (void)dealloc {

    [[NSNotificationCenter defaultCenter] removeObserver:self];
    [super dealloc];
}

将课程转换为 ARC 后,我会在哪里将自己从通知中心删除?它应该在 viewDidUnload 中吗?该通知用于侦听来自模式视图控制器的事件,因此我无法将此代码放入 viewWillDisappear。

4

1 回答 1

19

留在 ARC 中,dealloc只是您不应该再调用[super dealloc]:编译器会为您插入代码。当然,所有的电话release都不能在dealloc(或其他任何地方)进行。

- (void)dealloc {
    [[NSNotificationCenter defaultCenter] removeObserver:self];
    // [super dealloc]; <<== Compiler inserts this for you
}
于 2012-05-05T13:02:37.620 回答