init 和 dealloc 內避免使用訪問器

Tip

在init和dealloc方法執行的過程中,子類可能會處在一個不一致的狀態,所以這些方法中的代碼應避免調用訪問器。

子類尚未初始化,或在init和dealloc方法執行時已經被銷毀,會使訪問器方法很可能不可靠。實際上,應在這些方法中直接對 ivals 進行賦值或釋放操作。

正確:

-(id)init{

self=[superinit];

if(self){

bar_=[[NSMutableStringalloc]init];// good}

returnself;

}

-(void)dealloc{[bar_release];// good

[superdealloc];

}

錯誤:

-(id)init{

self=[superinit];

if(self){

self.bar=[NSMutableStringstring];// avoid

}

returnself;

}

-(void)dealloc{

self.bar=nil;// avoid

[superdealloc];

}


init 和 dealloc 內避免使用訪問器

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容