2010-09-06 83 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