前几天在登录成功后发出一个通知,
[[NSNotificationCenterdefaultCenter]postNotificationName:LOGINSUCESSobject:nil];
创建了3个通知监听事件,
[[NSNotificationCenterdefaultCenter]addObserver:selfselector:@selector(onLoginSucceedClicked)name:LOGINSUCESSobject:nil];
结果运行时发现能监听到通知的viewController并不全面,有时一个,又是两个,没有任何规律
为了排查原因把三份代码复制粘贴了一遍,并检查每页是否释放
- (void)dealloc{
[[NSNotificationCenterdefaultCenter]removeObserver:selfname:LOGINSUCESSobject:nil];
}
还是不行就问了朋友,原因是我的三个通知都是在TabBarController上的ViewController里面创建的,而tabBar的机制就是只有点击tabBarItem时它所对应的页面才开始创建,所以还没开始创建加载再上面的通知页理所当然的接收不到,找到了原因问题也就迅速解决了