引用计数与ARC

一、引用计数原理
引用计数就是表示多少个指针指向这个对象,当新的指针指向该对象时引用计数加1,当指针不再指向该对象时引用计数减1,当引用计数变为0时销毁对象,回收内存,达到内存管理的目的。
二、ARC的优点
自动内存管理ARC是Automatic Reference Count的缩写,ARC的优点是相对于手动内存管理MRC(Manual Reference Count)来讲的。
例如:对象A生成了对象S,之后又将对象S当作参数传递给对象B,那么基于“谁申请谁释放”的原则,对象A在合适的时间释放对象 S将会是一个难题。假如对象B又将对象S做为参数传递给对象C呢?使用ARC显然没有这些问题。大大降低了 程序员的开发复杂度。
三、ARC存在的问题
ARC能够解决大多数的内存管理问题,但是也存在着一个不可避免的缺陷--循环引用。对象A与对象B相互成为对方的成员变量,便形成了一个环,导致循环引用,无法释放对象。又或者对象A引用对象B,对象B引用对象C,对象C引用对象A,形成循环引用。在开发中一定要避免发生循环引用,特别是block中。可以采用弱引用断开循环引用其中一节即可。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 引用计数:一个简单而有效的管理对象生命周期的方式,Objective-C和Swift的内存管理方式都是基于引用计数...
    丘山Ivan阅读 294评论 0 0
  • 1.1 什么是自动引用计数 概念:在 LLVM 编译器中设置 ARC(Automaitc Reference Co...
    __silhouette阅读 5,264评论 1 17
  • 以下是关于内存管理的学习笔记:引用计数与ARC。iOS5以前自动引用计数(ARC)是在MacOS X 10.7与i...
    啊左阅读 4,608评论 0 17
  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,217评论 30 472
  • 仲夏的夜,萤火虫的舞 依偎着坐在藤椅里母亲的腿边 嗅着她身上淡淡的奶味和汗味 睡着了,很长的梦 梦里母亲丰盈的背影...
    叫我梅芳就好阅读 443评论 0 0