概述
在项目中某个地方需要接收一个通知,然后去做一项任务,调试时发现有时会收到两条相同的通知,奇怪了,排查步骤如下:
1.查看是否发送了两次通知; (结果发现只发送了一次)
2.查看- (void)addObserver:(id)observer selector:(SEL)aSelector name:(nullable NSNotificationName)aName object:(nullable id)anObject; 是否重复添加了两次; (结果发现没有)
3.查看现象发现,只有在重新登陆之后,会出现接收两次通知的现象,查看是否每次添加通知都对应了移除通知。结果发现添加通知的VC在退出登陆时,没有调用dealloc方法,没有释放,再次登陆时又注册监听了通知,导致收到两次同样的通知。修改逻辑后,终于正常了。
dealloc方法不调用,可以关注一下这三个方面:
(1)NSTimer循环引用;(2)代理是否用了strong修饰;(3)页面存在block循环引用;
发生这种情况之后,可能是由于添加通知的控制器多次创建而没有释放,导致多次注册通知监听造成的,可以重点关注下相应控制器的注册通知和移除通知点。
最后
以上就是健康水壶为你收集整理的关于NSNotificationCenter收到多次相同通知的问题的全部内容,希望文章能够帮你解决关于NSNotificationCenter收到多次相同通知的问题所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复