- 有 alloc 必须有 release
- set 方法规范
基本数据类型,直接赋值
- (void) setAge:(int)age
{
_age = age;
}
OC 对象类型
- (void)setCar:(Car *)car
{
if(car != _car)
{
[_car release];
_car = [car retain];
}
}
dealloc 规范
[super dealloc] 一定要放到最后
对 self 所拥有的其他对象做一次 release
回忆一下 set 方法的进化史
1、单纯的直接赋值 _car = car;
2、引入内存管理以后 OC 对象的引用需要增加引用计数器_car = [car alloc];
3、遇到如果有重复赋值的情况,并且在外边调用先调用 release 以后会出现野指针,所以增加判断,如果是重复赋值,就不进行 release le ,得到上面的最终形态
4、NSString *s = @”12345”; 这时候不用 release