Re: [問題][更正]關於使用autorelease或直接使用re …

看板MacDev作者 (等待.微笑)時間16年前 (2009/07/18 22:19), 編輯推噓1(103)
留言4則, 1人參與, 最新討論串1/2 (看更多)
※ 引述《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

07/18 22:21, , 1F
假如你自己建立的類別中,有以指標儲存的成員,就應該要
07/18 22:21, 1F

07/18 22:21, , 2F
實作dealloc,然後把所有的成員realease掉,最後呼叫父
07/18 22:21, 2F

07/18 22:22, , 3F
類別的dealloc ie. [super dealloc]
07/18 22:22, 3F

07/18 22:24, , 4F
其實dealloc就是C++中的destructor,這樣應該就很好理解
07/18 22:24, 4F
文章代碼(AID): #1AOTdbzN (MacDev)
文章代碼(AID): #1AOTdbzN (MacDev)