2010-06-20 46 views
0

當我瀏覽應用程序時,我收到了一些ViewController的異常。在viewdidunload中獲取EXC_BAD_ACCESS

在viewdidunload中發生異常,我認爲這是由於內存警告。 以下行會獲取IBOulet對象的異常。

self.LabelDistance = nil; 
self.distanceSlider = nil; 

請大家幫忙。 謝謝

回答

-1

嘗試:

[self.labelDistance release]; 
[self.distanceSlider release]; 

代替。另外,你不應該在viewDidUnload發佈ivars,在dealloc發佈它們。如果問題仍然存在,請運行靜態分析器(「構建」菜單>>構建和分析),它通常很擅長查找與內存相關的問題。

+0

您應該在viewDidUnload中釋放IBOutlets。因爲當視圖再次加載時,它會設置它們。 – rickharrison 2010-06-21 00:43:33

+0

啊好點,我沒有意識到他們是IBOutlets。 – indragie 2010-06-21 01:09:18

+0

@rickharrison - 儘管如果它們是用'retain' setter語義構造的屬性,它們將在設置新值時在合成設置器中釋放。在這一點上,我認爲你會冒過度釋放它們的風險,如果你在viewDidUnload中也這樣做了。 – 2010-06-22 12:50:38

1

你爲什麼要設置爲零?

如果它是@property (retain) UILabel * labelDistance;(和合成),那麼只需release它在dealloc。或者你是否在擺弄那個伊娃?

注意:您的變量和屬性應該以較低的字母「l」開頭。

相關問題