引用计数与ARC

作者: 等待的风 | 来源:发表于2017-02-08 16:28 被阅读0次

    一、引用计数原理
    引用计数就是表示多少个指针指向这个对象,当新的指针指向该对象时引用计数加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中。可以采用弱引用断开循环引用其中一节即可。

    相关文章

      网友评论

        本文标题:引用计数与ARC

        本文链接:https://www.haomeiwen.com/subject/jaavittx.html