可以先用,再用同名-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方法的观察者被调用两次,假设如果该-setObserver方法在其内部-viewDidLoad并发出内存警告时再次调用该方法。
另外,我需要在-removeObserver:期间调用-dealloc吗?