- 有 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