我是靠谱客的博主 健康水壶,这篇文章主要介绍关于NSNotificationCenter收到多次相同通知的问题,现在分享给大家,希望可以做个参考。

在项目中某个地方需要接收一个通知,然后去做一项任务,调试时发现有时会收到两条相同的通知,奇怪了,排查步骤如下:

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收到多次相同通知内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(98)

评论列表共有 0 条评论

立即
投稿
返回
顶部