小编mar*_*ark的帖子

addobserver/removeobserver查询

可以先使用-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]; 
}
Run Code Online (Sandbox Code Playgroud)

原因是为了防止两个具有相同selectorName方法的观察者被调用两次,假设该-setObserver方法在其内部-viewDidLoad和内存警告被发出时再次被调用.

另外,我需要在调用-removeObserver:期间调用-dealloc吗?

iphone cocoa-touch nsnotification

5
推荐指数
1
解决办法
3674
查看次数

标签 统计

cocoa-touch ×1

iphone ×1

nsnotification ×1