2012-05-05 4 views
11

私はにdealloc内でこのメソッドの呼び出しでクラスを持っている:ARCに変換するとき、-deallocにあったコードはどこに置くのですか?

- (void)dealloc { 

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

私はARCにクラスを変換したら、私は通知センターから自分自身を削除しますか?それはviewDidUnload内に入るはずですか?この通知は、モーダルビューコントローラからのイベントをリッスンするために使用されるため、このコードをviewWillDisappearに配置することはできません。

答えて

19

deallocはARCに残っています。[super dealloc]を呼び出すことは避けてください:コンパイラがコードを挿入します。もちろんreleaseへのすべての電話はdealloc(またはそれ以外の場所)で行うことはできません。

- (void)dealloc { 
    [[NSNotificationCenter defaultCenter] removeObserver:self]; 
    // [super dealloc]; <<== Compiler inserts this for you 
} 
関連する問題