优雅地特立独行 ARC

相信大家都对这个名字并不陌生了,本文针对对ARC一直在使用,但对某些细节有着可能似是而非的理解的人群,顺带还会介绍一些oc runtime的一些与ARC相关的知识

首先需要明确的是ARC只针对NSObject对象层级的对象生命周期管理,其运行基理是只要某个对象仍然被strong变量指针指向,则其就不会被销毁,反之,被销毁(理论上是马上,因为在这个场合,ARC会自动插入release指令)。

对象析构的时候,实例变量怎么啦

根据 Apple development documentation 中对dealloc的描述,实例变量及property属性变量在对象释放的时候会自动被释放

NSArray对象变量赋nil的时候,里面的对象有被释放吗?

需要声明的是NSArray在添加元素时就会持有被添加元素的强引用,并在其从NSArray中移除或者NSArray本身被释放时释放此强引用(你懂的,如果此元素仍在其他地方被持有强引用,此元素是不会从内存中销毁的)。

而NSArray在被赋新值(包括 nil)的时候,其会将所有子元素尽数释放

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

相关阅读更多精彩内容

  • 1.1 什么是自动引用计数 概念:在 LLVM 编译器中设置 ARC(Automaitc Reference Co...
    __silhouette阅读 5,446评论 1 17
  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,509评论 30 472
  • 有朋友问我,以下文字什么意思?:所以第二层,身心的训练,就到了第二次弟。见诸相空相,得意忘相。不为舒服练习,练得更...
    木木梦梦阅读 227评论 0 0
  • 这届里约奥运会,看比赛已成其次,网络上关于比赛的段子倒成了大家茶余饭后的谈资。每天都有新状况,随时都被新热点包围。...
    熊小妖阅读 414评论 0 3
  • 只有逼到绝路,你才能体会到什么是绝处逢生! 有时你觉得自己已经尽力了!最后却发现还可以更进一步,这真是一件很微妙的...
    懒猫物语阅读 595评论 0 0

友情链接更多精彩内容