內存管理原則

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章