オブザーバーを追加すると、オブジェクトの保持数が増えますか?はいの場合、ARCはこのオブザーバーの削除も処理しますか?そうでない場合、どこでオブザーバーを削除する必要がありますか?
15063 次
1 に答える
80
を使用する場合でも、オブザーバーを明示的に削除する必要がありますARC
。メソッドを作成し、dealloc
そこから削除します。
-(void)dealloc {
[[NSNotificationCenter defaultCenter] removeObserver:self];
}
ここで呼び出す必要のないメソッドが表示された場合は、[super dealloc];
スーパーdeallocのないメソッドのみが必要です。
スイフトのアップデート
swiftでコードを記述している場合は、 deinitメソッドでオブザーバーを削除できます。
deinit {
NSNotificationCenter.defaultCenter().removeObserver(self)
}
于 2013-03-27T10:17:20.317 に答える