一、什么是内存管理
内存管理是指软件运行时对计算机内存资源分配和使用的技术,其最主要的目的是如何高效,快速的分配,并且在适当的时候释放和回收内存资源。
二、为什么需要内存管理
由于移动设备的内存极其有限,所以每个APP所占的内存也是有限制的,当app所占用的内存较多时,系统就会发出内存警告,这时需要回收一些不需要再继续使用的内存空间,比如回收一些不再使用的对象和变量等。
管理范围:任何继承NSObject的对象,对其他的基本数据类型无效。
本质原因是因为对象和其他数据类型在系统中的存储空间不一样,其它局部变量主要存放于栈中,而对象存储于堆中,当代码块结束时这个代码块中涉及的所有局部变量会被回收,指向对象的指针也被回收,此时对象已经没有指针指向,但依然存在于内存中,造成内存泄露。
三、OC内存管理原则
只要还有人在使用某个对象,那么这个对象就不会被回收;
只要你想使用这个对象,那么就应该让这个对象的引用计数器+1;
当你不想使用这个对象时,应该让对象的引用计数器-1;
(1)谁创建,谁release
(a)如果你通过alloc,new,copy来创建了一个对象,那么你就必须调用release或者autorelease方法
(b)不是你创建的就不用你去负责
(2) 谁retain,谁release
只要你调用了retain,无论这个对象时如何生成的,你都要调用release