作者angelyin (等待.微笑)
看板MacDev
標題Re: [問題][更正]關於使用autorelease或直接使用re …
時間Sat Jul 18 22:19:16 2009
※ 引述《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
1F:推 Blueshiva:假如你自己建立的類別中,有以指標儲存的成員,就應該要 07/18 22:21
2F:→ Blueshiva:實作dealloc,然後把所有的成員realease掉,最後呼叫父 07/18 22:21
3F:→ Blueshiva:類別的dealloc ie. [super dealloc] 07/18 22:22
4F:→ Blueshiva:其實dealloc就是C++中的destructor,這樣應該就很好理解 07/18 22:24