iOS 通知不移除会有什么影响

iOS9.0之前不移除是会崩溃的,iOS9.0之后不移除是不会崩溃的。

为什么呢?原因在这里。。。

我们都知道在 iOS 开发中我们会经常用到NSNotificationCenter用于对象间通信方式,特别是在针对一对多和跨层通信的时候,而在观察者注册时,通知中心并没有对观察者对象做 retain 处理,而是对观察者对象进行unsafe_unretained 引用,而usafereference与weak reference的区别是当被引用的对象释放时不会自动置为nil,也就是成了野指针,而weak会当被引用的对象释放时自动置为nil,所以也就导致了我们在iOS9.0之前没有手动移除通知的时候对象被释放掉而通知中心就成了野指针,所有造成了崩溃问题,然后在iOS9.0之后通知中心对观察者做了弱引用

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1.ios高性能编程 (1).内层 最小的内层平均值和峰值(2).耗电量 高效的算法和数据结构(3).初始化时...
    欧辰_OSR阅读 30,045评论 8 265
  • OC语言基础 1.类与对象 类方法 OC的类方法只有2种:静态方法和实例方法两种 在OC中,只要方法声明在@int...
    奇异果好补阅读 9,834评论 0 11
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 13,907评论 1 32
  • 面试题参考1 : 面试题[http://www.cocoachina.com/ios/20150803/12872...
    江河_ios阅读 5,693评论 0 4
  • 如果说夏天是火红的,充满活力;秋天是金黄的,充满收获;冬天是雪白的,充满静谧。那春天就是柔嫩的,充满了希望。 瞧,...
    陌上花开孙凤霞阅读 1,630评论 0 4

友情链接更多精彩内容