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 に答える