Ron*_*gge 1 iphone objective-c
我的智慧结束了.我正在尝试调试崩溃,最后我设法跟踪它.我的'minutesLeft'变量以某种方式被释放.
问题是,我从未将其设置为释放,并且属性设置为保留.我无法弄清楚发生了什么!
使用zombie变量,我得到以下消息:*** - [CFNumber intValue]:发送到解除分配的实例0x728fdd0的消息
并将其跟踪到以下代码行:
NSLog(@"MeterViewController minutesLeft %i", [minutesLeft intValue]);
Run Code Online (Sandbox Code Playgroud)
问题是当我声明属性... @property(nonatomic,retain)NSNumber*minutesLeft; 所以该物业应该为我处理保留!
使用...设置该值
minutesLeft=[NSNumber numberWithInt:row];
Run Code Online (Sandbox Code Playgroud)
和...
minutesLeft=[NSNumber numberWithInt:(((timeLeft)/60)%60)];
Run Code Online (Sandbox Code Playgroud)
对于dealloc和viewDidUnload,我有
self.minutesLeft=nil;
Run Code Online (Sandbox Code Playgroud)
但既然我不离开这个观点,那些不应该影响任何东西.
有人有主意吗?
您正在设置作为属性支持的局部变量,而不是属性本身.因此它不会被保留.尝试:
self.minutesLeft = [NSNumber numberWithInt:row]
Run Code Online (Sandbox Code Playgroud)
要么
self.minutesLeft = [NSNumber numberWithInt:(((timeLeft)/60)%60)];
Run Code Online (Sandbox Code Playgroud)
(注意self.)
在解除分配(设置self.minutesLeft = nil)时,您正在正确执行此操作.
| 归档时间: |
|
| 查看次数: |
159 次 |
| 最近记录: |