作者zonble (zonble)
看板MacDev
標題Re: [問題] viweDidUnload該填的內容為何?
時間Tue Aug 4 23:07:33 2009
※ 引述《denru01 (阿儒)》之銘言:
: 偏偏viewDidUnload似乎是在記憶體不夠時才會被呼叫,
: 現在根本沒辦法測。
iPhone Simulator 的 Hardware 選單裡頭有一項
「Simulate Memory Warning」,就是拿來做這件事情用的。
: 另外, 設self.myOutlet = nil; 與 [self.myOutlet release]; 的差別為何呢?
: 在此能不能使用[self.myOutlet release];呢?
在 ObjC 2.0 裡頭,成員變數的使用方式並不等同於 property。
property 的語法基本上是幫你把 getter 與 setter 寫完,所以,
self.myOutlet = nil 的意思是
- (void)setMyOutlet:(id)tmp
{
[myOutlet release];
myOutlet = [tmp retain]; // 如果 property 是設成 retain
}
[self setMyOutlet:nil];
而 [self.myOutlet release] 則是:
- (id)myOutlet
{
return myOutlet;
}
id tmp = [self myOutlet];
[tmp release];
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.42.194.167
1F:→ uranusjr:其實我建議如果沒 garbage collector 能用, 又還沒成為 08/04 23:33
2F:→ uranusjr:記憶體管理大師, 那手動寫 getter setter 會比較好... 08/04 23:33
3F:→ uranusjr:不是會不會寫錯的問題, 是這樣比較容易知道自己在幹什麼 08/04 23:34
4F:→ uranusjr:點運算子和 @property 對更有經驗的人比較有幫助 08/04 23:35