您的位置:首页 > 其它

OC学习之内存管理初解

2013-07-28 21:52 169 查看
内存管理初解:

IOS系统为每个程序分配30MB的内存,超过20MB就会收到警告。

当你申请了一块内存的时候,一定要想在什么时候去释放它。

而且我们要注意不要去申请刚被释放的内存,否则我们将可能误用陈旧的数据。

其逻辑为 alloc +1 retain +1 release -1 release -1

对象被创建时候,引用计数的值为1 当引用计数值为0的时候,对象被系统销毁。

哪些会加1呢? alloc +1 retain +1 copy 该副本+1 

copy 如果指针A和指针B不想相互牵扯,A管理A的内存,B管理B的内存。

而哪些会为0呢

release -1 autorelease -1  

每当有 retain alloc copy的地方 就必须有release 来配合使用

如果属性里出现了 retain copy的时候 就要在这个类的dealloc方法理去释放这个属性

dealloc的意思就是 当该内存的计时器为0的时候 也就是retainCount为0的时候 

自动调用这个方法 

比如 m.a 如果m的计数器为0的时候 但是m.a还是1 这个时候 就会自动调用dealloc这个方法 先去release m.a 然后再去执行 m release

归根结底 内存管理就是 你去创建了一个内存 就要去释放它 不然就会有内存泄露 或者内存溢出等情况出现 

一味的去创建 而不考虑释放的话 你的程序将会一直占着内存不放 而引起系统崩溃
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: