iOS Developer

引用计数与ARC

2017-02-08  本文已影响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中。可以采用弱引用断开循环引用其中一节即可。

上一篇下一篇

猜你喜欢

热点阅读