最初に使用してから同じ名前で-removeObserver:
呼び出しても問題ありませんか? -addObserver:
それとも-addObserver:
先に先にするのがルール-removeObserver:
ですか?
OS 4.0 を使用して試してみましたが、問題ないようです (クラッシュ、警告などはありません)。
-(void) setObserver
{
[[NSNotificationCenter defaultCenter] removeObserver:self
name:OBSERVER_NAME object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self
selector: @selector(selectorName)
name:OBSERVER_NAME
object:nil];
}
その理由は、メソッドが内部でメモリ警告が発行された場合にメソッドが再度呼び出されたとselectorName
仮定して、同じメソッドを持つ 2 つのオブザーバーが 2 回呼び出されるのを防ぐためです。-setObserver
-viewDidLoad
-removeObserver:
また、中に呼び出す必要があり-dealloc
ますか?