您的位置:首页 > 其它

避免NSNotification的一些坑

2017-04-17 14:47 211 查看
使用NSNotification的时候,总会碰到这种情况,明明只post一次通知,但是却执行了多次代码。其实,解决这个问题还是容易的,那就是记住,有监听就要有释放。

如果NSNotification是用在ViewConroller里面,那么,最好是放在viewWillAppear以及viewWillDisappear。即执行如下代码:

-(void)viewWillAppear:(BOOL)animated {

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(方法) name:@”AAA” object:nil];

}

-(void)viewWillDisappear:(BOOL)animated {

[[NSNotificationCenter defaultCenter] removeObserver:self name:@”AAA” object:nil];

}

不过也许可能有其他情况,导致viewWillDisappear不执行,那么这个时候,可以在addObserver之前,加上removeObserver。即执行如下代码:

-(void)viewWillAppear:(BOOL)animated {
[[NSNotificationCenter defaultCenter] removeObserver:self name:@"AAA" object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(方法) name:@"AAA" object:nil];
}


当然,你需要多次测试。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  NSNotifica