1、OC内存管理基本概念
为什么要进行内存管理?
由于移动设备的内存极其有限,所以每个APP所占的内存也是有限制的,当app所占用的内存较多时,系统就会发出内存警告,单个app可用的内存是被限制的,如果一个app使用的内存超过20M,则系统会向该app发送Memory Warning消息。收到此消息后,需要回收一些不需要再 继续使用的内存空间,比如回收一些不再使用的对象和变量等,否则程序会崩溃。
2、OC内存管理的范围
管理范围:
管理任何继承NSObject的对象,对其他的基本数据类型无效。
为什么只对继承NSObject的对象,进行内存管理?
本质原因是因为对象和其他数据类型在系统中的存储空间不一样,其它局部变量主要存放于栈中,而对象存储于堆中,当代码块结束时这个代码块中涉及的所有局部变量会被回收,指向对象的指针也被回收,此时对象已经没有指针指向,但依然存在于内存中,造成内存泄露。
内存管理的范围:
主要是对继承了NSObject的对象进行管理。基本数据类型是没有内存管理的。
对象类型是程序运行过程中动态分配的,存储在堆区;
内存管理主要是对 堆区中的对象的内存管理。 |
|