在oc中内存管理方法十分的严谨,OC确实强大!在Xcode中能够自动管理内存的功能,叫做ARC。但是还是要知道怎么手动管理内存。
在使用对象时,系统会对该对象(object)的引用计数器进行加1操作(retain),然而只有当对象的引用计数器等于0时系统才会回收该对象,所以为了防止内存泄露必须在不使用该对象(object)时,对它进行release操作。
使用对象原则:
1.谁创建对象,谁对对象release。
2.谁retain了,谁release。
3.有alloca,就要有release。
4.只要调用了alloc,必须有release与它相对应;如果对象不是通过alloca创建,不需要对该对象release。
内存管理的代码规范:
1。set方法的代码规范:
基本数据类型的set方法,直接赋值
OC对象类型得这样写:
//假如类是Person
- (void)setPerson:Person *person
{
if(person!=_person)//判断新旧对象是否相同
{
[_person release];//对旧对象进行减1操作,如果第一次使用时确实不相同,此操作会忽略,因为oc能够容忍空指针错误
_person = [person retain]; //对新对象进行加1操作
}
}
dealloc的代码规范
- (void)dealloc
{
[_person release];//当不需要使用这个对象时,减1操作与set里的ratain相对应
[super dealloc];//一定要写在代码的最后面
}
时间: 2024-10-24 01:39:43