2010-09-06 84 views
1

我在我的智慧結束。我試圖調試崩潰,最後我設法跟蹤它。我的'minutesLeft'變量以某種方式被釋放。屬性(保留)對象被釋放而不會被標記爲發佈

問題是,我從未將它設置爲釋放,並且該屬性設置爲保留。我無法弄清楚發生了什麼事!

使用殭屍變量,我得到以下信息: *** - [CFNumber的intValue]:消息發送到釋放的實例0x728fdd0

和跟蹤它到下面的行的代碼:

NSLog(@"MeterViewController minutesLeft %i", [minutesLeft intValue]); 

問題是當我聲明屬性... @property(nonatomic,retain)NSNumber * minutesLeft; 所以財產應該爲我處理保留!

值使用設置...

minutesLeft=[NSNumber numberWithInt:row]; 

和...

minutesLeft=[NSNumber numberWithInt:(((timeLeft)/60)%60)]; 

對的dealloc和viewDidUnload我有

self.minutesLeft=nil; 

但因爲我不會離開該觀點認爲,這些不應該影響任何事情。

任何人有任何想法?

回答

5

您正在設置屬性支持的局部變量,而不是屬性本身。因此它不會被保留。嘗試:

self.minutesLeft = [NSNumber numberWithInt:row] 

self.minutesLeft = [NSNumber numberWithInt:(((timeLeft)/60)%60)]; 

(注意self.

重新分配,但(設置self.minutesLeft = nil)當你正在做正確。

+0

難道不僅僅是因爲其他人寫的代碼會是代碼正確的代碼。我以爲這兩個是同義詞:( – RonLugge 2010-09-06 20:53:28