开启ARC之后,NSNotificationCenter removeObserver 是否需要调用,在何时调用?

今天在stackoverflow上面看到一个问题,arc情况下是否需要调用removeObserver,自己想了想,的确是个问题,就研究了一下。

上代码:

- (void)dealloc {[[NSNotificationCenter defaultCenter]   removeObserver:self];
}

本来想着在arc中dealloc方式是已经遗弃的了,但是事实是它还存在,但是不能像mrc中那样还需要调用一下[super dealloc],在arc环境下,这个方法是不能用的,否则编译器直接就报错。 
后来我就想到dealloc方式会正常调用吗?

下面是添加观察者的方法:

[[NSNotificationCenter defaultCenter] addObserver:selfselector:@selector(method:)name:@"postkey"object:nil];

这个方法第一个参数Observer是不会对它进行retain操作,所以不会形成循环引用,但是还有必要调用removeObserver吗?

答案当然是:有必要!

如果这个对象被释放,当在调用post消息的时候,就会报对象被释放的错误,导致闪退,所以在添加观察者的对象,一定要在它被销毁的时候从消息中心删除!

转载于:https://www.cnblogs.com/yongdaimi/p/6099487.html

iOS-开启arc之后 NSNotificationCenter removeObserver 是否需要调用相关推荐

  1. iOS开发 - ARC的开启与关闭

    2019独角兽企业重金招聘Python工程师标准>>> 不同于XCode4可以在创建工程时选择关闭ARC,XCode5在创建的工程是默认开启ARC,没有可以关闭ARC的选项. 如果需 ...

  2. IOS中通知中心(NSNotificationCenter)的使用总结

    IOS中通知中心NSNotificationCenter应用总结 一.了解几个相关的类 1.NSNotification 这个类可以理解为一个消息对象,其中有三个成员变量. 这个成员变量是这个消息对象 ...

  3. iOS开发ARC内存管理技术要点

    本文来源于我个人的ARC学习笔记,旨在通过简明扼要的方式总结出iOS开发中ARC(Automatic Reference Counting,自动引用计数)内存管理技术的要点,所以不会涉及全部细节.这篇 ...

  4. iOS开发ARC入门和使用

    本文部分实例取自iOS 5 Toturail一书中关于ARC的教程和公开内容,仅用于技术交流和讨论.请不要将本文的部分或全部内容用于商用,谢谢合作. 欢迎转载本文,但是转载请注明本文出处:http:/ ...

  5. iOS开发ARC内存管理

    本文的主要内容: ARC的本质 ARC的开启与关闭 ARC的修饰符 ARC与Block ARC与Toll-Free Bridging ARC的本质 ARC是编译器(时)特性,而不是运行时特性,更不是垃 ...

  6. iOS 下ARC的内存管理机制

    本文来源于我个人的ARC学习笔记,旨在通过简明扼要的方式总结出iOS开发中ARC(Automatic Reference Counting,自动引用计数)内存管理技术的要点,所以不会涉及全部细节.这篇 ...

  7. iOS高级面试之NSNotificationCenter是同步操作还是异步操作

    转载:http://blog.csdn.net/u014220518/article/details/70598063 :http://blog.csdn.net/intheair100/articl ...

  8. IOS开发 ARC forbids explicit message send of 'autorelease'错误解决办法

    在ios中经常会遇到:ARC forbids explicit message send of 'autorelease' 或"ARC forbids explicit message se ...

  9. Delphi iOS 开启文件共享 UIFileSharingEnabled

    Apple 在 iOS 提供了文件共享(FileSharing)功能,让 App 有一个对外窗口的目录,透过 iTunes 可以任意管理这个目录的文档内容(可拖入文档,也能将文档拖出备份). 如果 A ...

最新文章

  1. lasTools laszip.exe 点云las/laz的无损压缩/解压缩工具
  2. crackme 逆向寒假生涯(22/100)
  3. P1067 多项式输出(模拟)
  4. 《自动化技术中的进给电气传动》1.4节读书笔记
  5. dell idrac 复位_DELL 服务器 装系统前初始化(恢复出厂、超线程、虚拟化、iDRAC设置)...
  6. linux php curl.so,linux中php如何安装CURL扩展方法
  7. 2020 美国大选在即,又到了 AI 花式打击假新闻的季节
  8. Linux系统磁盘阵列创建教程----------(better late than never. 只要开始,虽晚不迟。)...
  9. 外键查询_详解MySQL数据库删除所有表的外键约束、禁用外键约束相关脚本
  10. B站三季度财报解读丨从0到2.67亿月活,B站生态亮眼的密钥何在?
  11. 外汇风险管理:德鲁克日志之五月十一日
  12. 五十三、微信小程序云开发豆瓣电影小项目
  13. .net Stream篇(五)
  14. python中fontsize_更改MatPlotLib中顶部xaxis的fontsize
  15. 智慧城市App解决方案
  16. 计算机专业学历简况,刘觉民
  17. java 手机号码生成_用R语言和java实现随机生成手机号码
  18. 基于Python的人脸识别考勤系统
  19. Kafka:用于日志处理的分布式消息系统
  20. 基于单片机自动智能浇花系统电路设计(毕业设计资料)

热门文章

  1. jsonb 查询_如何使用IN运算符查询jsonb数组
  2. mysql5.7gtid_MySQL5.7 GTID 运维实战
  3. 配置LNMP遇到的问题(页面空白,不能解析php等)以及fastcgi和php-fom的关系
  4. 浅谈Promise对象在ReactNative中的使用
  5. 【深度学习】Keras加载权重更新模型训练的教程(MobileNet)
  6. 【深度学习】卷积神经网络速成
  7. 【Linux入门到精通系列讲解】系统调用和库函数路径
  8. linux显示父目录,linux – 仅列出文件的公共父目录
  9. java for(o t :object) 获取顺序号_java中线程的生命周期
  10. windows cannot ftp_免费自动FTP同步软件,6步掌握免费自动FTP同步软件的安装方法...