看板 MacDev 關於我們 聯絡資訊
※ 引述《atst2 (atst2)》之銘言: : 一般在dealloc內做的事情: : - (void)dealloc : { : if(_A) { : [_A release]; //這裡要注意,要釋放object內的變數,不可以用dealloc, : //更明確一點,開發者應避免直接呼叫dealloc, : //而是使用release代替。 : } : //....釋放其他資源. : [super dealloc]; : } 我在使用xcode建立專案時 我在AppDelegate.h裡面看到他自動幫我建立了 -(void)dealloc { [abc release]; [super dealloc]; } dealloc是在reference count歸零時 系統會自動呼叫的 那如果我刪掉上述這幾行 那dealloc還會有作用嗎? 如果有 那似乎就不需要寫在程式了? 還是有什麼情況是必須要寫? 有的時候可以不用寫? 不好意思 問題很多 ^^" 謝謝各位 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.210.169
Blueshiva:假如你自己建立的類別中,有以指標儲存的成員,就應該要 07/18 22:21
Blueshiva:實作dealloc,然後把所有的成員realease掉,最後呼叫父 07/18 22:21
Blueshiva:類別的dealloc ie. [super dealloc] 07/18 22:22
Blueshiva:其實dealloc就是C++中的destructor,這樣應該就很好理解 07/18 22:24