オブザーバーを追加すると、オブジェクトの保持カウントが増加しますか?はいの場合、ARCはこのオブザーバーの削除も処理しますか?そうでない場合、どこでオブザーバーを削除する必要がありますか?
ARC
を使用する場合でも、オブザーバーを明示的に削除する必要があります。 dealloc
メソッドを作成して削除します。
-(void)dealloc {
[[NSNotificationCenter defaultCenter] removeObserver:self];
}
ここで[super dealloc];
を呼び出す必要がないメソッドが表示された場合は、スーパーdeallocを使用しないメソッドのみが必要です。
Swiftの更新
Swiftでコードを記述している場合は、deinitメソッドでオブザーバーを削除できます。
deinit {
NSNotificationCenter.defaultCenter().removeObserver(self)
}