當我瀏覽應用程序時,我收到了一些ViewController的異常。在viewdidunload中獲取EXC_BAD_ACCESS
在viewdidunload中發生異常,我認爲這是由於內存警告。 以下行會獲取IBOulet對象的異常。
self.LabelDistance = nil;
self.distanceSlider = nil;
請大家幫忙。 謝謝
當我瀏覽應用程序時,我收到了一些ViewController的異常。在viewdidunload中獲取EXC_BAD_ACCESS
在viewdidunload中發生異常,我認爲這是由於內存警告。 以下行會獲取IBOulet對象的異常。
self.LabelDistance = nil;
self.distanceSlider = nil;
請大家幫忙。 謝謝
嘗試:
[self.labelDistance release];
[self.distanceSlider release];
代替。另外,你不應該在viewDidUnload
發佈ivars,在dealloc
發佈它們。如果問題仍然存在,請運行靜態分析器(「構建」菜單>>構建和分析),它通常很擅長查找與內存相關的問題。
你爲什麼要設置爲零?
如果它是@property (retain) UILabel * labelDistance;
(和合成),那麼只需release
它在dealloc
。或者你是否在擺弄那個伊娃?
注意:您的變量和屬性應該以較低的字母「l」開頭。
您應該在viewDidUnload中釋放IBOutlets。因爲當視圖再次加載時,它會設置它們。 – rickharrison 2010-06-21 00:43:33
啊好點,我沒有意識到他們是IBOutlets。 – indragie 2010-06-21 01:09:18
@rickharrison - 儘管如果它們是用'retain' setter語義構造的屬性,它們將在設置新值時在合成設置器中釋放。在這一點上,我認爲你會冒過度釋放它們的風險,如果你在viewDidUnload中也這樣做了。 – 2010-06-22 12:50:38