手动内存管理基本概念
2019-01-09 本文已影响7人
习惯了_就好
创建对象:
1.分配内存空间,村处对象
2.初始化成员变量
3.返回对象的指针地址
引用计数器:
1.对象在完成创建的同时,内部会自动创建一个引用计数器,这个计数器是系统用来判断是否回收对象的唯一依据,当饮用计数retainCount = 0 时,系统就会回收掉当前对象
2.[ 对象 release] retainCount - 1
3.[ 对象 retain ] retainCount + 1,并且返回self指针
4.我们的饮用计数retainCount = 0时对象就会被销毁
5.deallloc函数,当一个对象要被销毁的时候,系统会自动调用dealloc函数,通知对象你将会被销毁
内存管理原则(配对原则):
只要出现了new,alloc,retain,就一定配对出现一个release或者autorelease
手动内存管理研究的问题:
1.野指针操作
2.内存泄露
野指针:内存被释放后的对象(调用了release方法)
避免野指针的方法:把不再使用的对象赋值为nil
内存泄漏:不再被使用的对象,一直在内存中没有被释放掉(只要retainCount != 0就会一直在内存中)