一、引用计数原理
引用计数就是表示多少个指针指向这个对象,当新的指针指向该对象时引用计数加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
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 1.1 什么是自动引用计数 概念:在 LLVM 编译器中设置 ARC(Automaitc Reference Co...