我的智慧结束了。我正在尝试调试崩溃,最后我设法跟踪它。我的'minutesLeft'变量以某种方式被释放。
问题是,我从未将其设置为发布,并且该属性设置为保留。我无法弄清楚发生了什么!
使用zombie变量,我收到以下消息: *** - [CFNumber intValue]:发送到解除分配的实例0x728fdd0的消息
并将其跟踪到以下代码行:
NSLog(@"MeterViewController minutesLeft %i", [minutesLeft intValue]);
问题是当我申报财产时...... @property(非原子,保留)NSNumber * minutesLeft; 所以财产应该为我处理保留!
使用...
设置该值minutesLeft=[NSNumber numberWithInt:row];
和...
minutesLeft=[NSNumber numberWithInt:(((timeLeft)/60)%60)];
对于dealloc和viewDidUnload我有
self.minutesLeft=nil;
但是因为我不会离开这个观点,所以这些不应该影响任何事情。
有人有什么想法吗?
答案 0 :(得分:5)
您正在设置作为属性支持的局部变量,而不是属性本身。因此它不会被保留。尝试:
self.minutesLeft = [NSNumber numberWithInt:row]
或
self.minutesLeft = [NSNumber numberWithInt:(((timeLeft)/60)%60)];
(注意self.
)
在解除分配时,您正在正确执行此操作(设置self.minutesLeft = nil
)。