OC内存管理

2017-05-11  本文已影响14人  快乐的tomato

一、为什么要进行内存管理

1、首先要搞清楚什么是内存

内存的详细讲解(网上有现成的就懒得去写了)。

内存的5大区域及存放的内容

内存管理的范围:任何继承NSObject的对象,其他数据类型无效。

内存管理范围

二、OC内存管理的原理

三、内存管理方式

内存泄露:person *p = [person new];

如果栈区的p已经释放了,而堆的空间还没有释放,堆去的空间就泄露了。

野指针能和僵尸对象

四、property

4.1property的属性

4.2、property内存管理的策略选择

property内存管理的策略选择

五、import和@class的区别

六、copy的理解

七、为什么会有autorelease

OC的内存管理机制中比较重要的一条规律是:谁申请,谁释放。

考虑到这种情况,如果一个方法需要返回一个新建的对象,该对象如何释放?

方法内部是不会写release方法来释放对象的,因为这样做会将对象立即释放,而返回一个空对象,

调用者又不会主动释放该对象的,因为调用者遵循“谁申请谁释放”的原则,那么这个时候,就发生了内存泄漏。

上一篇下一篇

猜你喜欢

热点阅读