iOS-开启arc之后 NSNotificationCenter removeObserver 是否需要调用
开启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 是否需要调用相关推荐
- iOS开发 - ARC的开启与关闭
2019独角兽企业重金招聘Python工程师标准>>> 不同于XCode4可以在创建工程时选择关闭ARC,XCode5在创建的工程是默认开启ARC,没有可以关闭ARC的选项. 如果需 ...
- IOS中通知中心(NSNotificationCenter)的使用总结
IOS中通知中心NSNotificationCenter应用总结 一.了解几个相关的类 1.NSNotification 这个类可以理解为一个消息对象,其中有三个成员变量. 这个成员变量是这个消息对象 ...
- iOS开发ARC内存管理技术要点
本文来源于我个人的ARC学习笔记,旨在通过简明扼要的方式总结出iOS开发中ARC(Automatic Reference Counting,自动引用计数)内存管理技术的要点,所以不会涉及全部细节.这篇 ...
- iOS开发ARC入门和使用
本文部分实例取自iOS 5 Toturail一书中关于ARC的教程和公开内容,仅用于技术交流和讨论.请不要将本文的部分或全部内容用于商用,谢谢合作. 欢迎转载本文,但是转载请注明本文出处:http:/ ...
- iOS开发ARC内存管理
本文的主要内容: ARC的本质 ARC的开启与关闭 ARC的修饰符 ARC与Block ARC与Toll-Free Bridging ARC的本质 ARC是编译器(时)特性,而不是运行时特性,更不是垃 ...
- iOS 下ARC的内存管理机制
本文来源于我个人的ARC学习笔记,旨在通过简明扼要的方式总结出iOS开发中ARC(Automatic Reference Counting,自动引用计数)内存管理技术的要点,所以不会涉及全部细节.这篇 ...
- iOS高级面试之NSNotificationCenter是同步操作还是异步操作
转载:http://blog.csdn.net/u014220518/article/details/70598063 :http://blog.csdn.net/intheair100/articl ...
- IOS开发 ARC forbids explicit message send of 'autorelease'错误解决办法
在ios中经常会遇到:ARC forbids explicit message send of 'autorelease' 或"ARC forbids explicit message se ...
- Delphi iOS 开启文件共享 UIFileSharingEnabled
Apple 在 iOS 提供了文件共享(FileSharing)功能,让 App 有一个对外窗口的目录,透过 iTunes 可以任意管理这个目录的文档内容(可拖入文档,也能将文档拖出备份). 如果 A ...
最新文章
- lasTools laszip.exe 点云las/laz的无损压缩/解压缩工具
- crackme 逆向寒假生涯(22/100)
- P1067 多项式输出(模拟)
- 《自动化技术中的进给电气传动》1.4节读书笔记
- dell idrac 复位_DELL 服务器 装系统前初始化(恢复出厂、超线程、虚拟化、iDRAC设置)...
- linux php curl.so,linux中php如何安装CURL扩展方法
- 2020 美国大选在即,又到了 AI 花式打击假新闻的季节
- Linux系统磁盘阵列创建教程----------(better late than never. 只要开始,虽晚不迟。)...
- 外键查询_详解MySQL数据库删除所有表的外键约束、禁用外键约束相关脚本
- B站三季度财报解读丨从0到2.67亿月活,B站生态亮眼的密钥何在?
- 外汇风险管理:德鲁克日志之五月十一日
- 五十三、微信小程序云开发豆瓣电影小项目
- .net Stream篇(五)
- python中fontsize_更改MatPlotLib中顶部xaxis的fontsize
- 智慧城市App解决方案
- 计算机专业学历简况,刘觉民
- java 手机号码生成_用R语言和java实现随机生成手机号码
- 基于Python的人脸识别考勤系统
- Kafka:用于日志处理的分布式消息系统
- 基于单片机自动智能浇花系统电路设计(毕业设计资料)
热门文章
- jsonb 查询_如何使用IN运算符查询jsonb数组
- mysql5.7gtid_MySQL5.7 GTID 运维实战
- 配置LNMP遇到的问题(页面空白,不能解析php等)以及fastcgi和php-fom的关系
- 浅谈Promise对象在ReactNative中的使用
- 【深度学习】Keras加载权重更新模型训练的教程(MobileNet)
- 【深度学习】卷积神经网络速成
- 【Linux入门到精通系列讲解】系统调用和库函数路径
- linux显示父目录,linux – 仅列出文件的公共父目录
- java for(o t :object) 获取顺序号_java中线程的生命周期
- windows cannot ftp_免费自动FTP同步软件,6步掌握免费自动FTP同步软件的安装方法...