码迷,mamicode.com
首页 > 其他好文 > 详细

内存管理

时间:2015-08-19 16:15:11      阅读:160      评论:0      收藏:0      [点我收藏+]

标签:

内存管理 (app开发)

栈区stack:先进后出。出栈释放。

堆heap:程序员控制其释放。

内存泄露:没有被对象指针立即释放的内存。

有一块内存,没有指针引用,系统不释放,就会造成内存浪费的情况。

 

ARC 内存自动管理技术 Auto Recefence Count 自动引用技术

ARC基础原则:内存无人引用,即立即释放。

手动内存管理原则:谁申请内存,谁负责释放。

这里区别一下引用 和 指向 的区别。

指向:指针里面的值是内存的地址;

引用:内容里面会有一个计数器区间(结构体),当计数器为0时,内存释放。

 

关键字

_strong :强引用。被强引用类型的对象指针指向的内存,绝对不会释放。 绝大多数情况都用_strong.

_weak归零弱引用:如果内存被归零弱引用类型的对象指针引用。该内存释放情况,不受此类型对象指针的影响。当对象指针指向的内存释放时,该对象指针指向自动值nil(归零)。

归零弱引用的应用:delegate 和 block模块里的强引用循环;(__weak__block RoomG * copy_self = self; 可以用来打破block的强引用循环)

_unsage_unretained:弱引用。比较危险的用法,在app开发中,一律可以用归零弱引用替换。

_autoreleasing 不能理解为自动释放类型!它需要自动释放池与之配合使用,让对象指针指向的内存在受控情况下释放。

被_autoreleasing指向的内存,在出自动释放池时释放。作用:延迟释放,提前释放(内存激增)  便利构造器中比较常见。

 

内存管理

标签:

原文地址:http://www.cnblogs.com/skyfusheng/p/4742284.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!