2012年3月17日 星期六

ARC下不可不慎的method取名



ARC做事有它自己的原則,
其中的關鍵在於method的取名。

以上圖為例,
當method名稱為getArtist時,
ARC認為此method回傳的物件有點髒亂,
需要被丟到autorelease pool好好清洗一番。
因此雖然接收的變數artist宣告為__weak,
但此物件還可以繼續存活,
直到autorelease pool將pool裡的物件release。

但當method名稱以alloc, copy,  new, init, mutalbeCopy開頭時,
回傳物件的生死將由接收的變數決定。
由於接收的artiest2宣告為__weak,
表明了對回傳的物件沒有興趣。
所以此物件將馬上被release,
結束它短暫又平凡的一生。

沒有留言:

張貼留言