我是靠谱客的博主 健康水壶,最近开发中收集的这篇文章主要介绍关于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收到多次相同通知的问题所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部