避免NSNotification的一些坑

发布于:2021-06-19 05:07:57

使用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];
}

当然,你需要多次测试。

相关推荐

最新更新

猜你喜欢