我有一个奇怪的问题(如果你问我很奇怪)。我使用一个NSNumber
对象来存储一个数字(doh)。当我尝试“修改”它时,它会使我的应用程序崩溃。我正在使用的代码如下所示:
if ([frequency intValue] > 19999)
return;
frequency = [NSNumber numberWithInt:([frequency intValue] + 1)]; //I think this line is causing me the problem
[freqLabel setText:[NSString stringWithFormat:@"%i Hz", [frequency intValue]]];
频率NSNumber
和 freqLabel 我的标签在哪里,每次调用它时我都会将值写入该标签。为什么这是不正确的?当我第一次调用它时它会起作用。它NSNumber numberWithInt
总是返回一个我试图分配给频率的新对象吗?我该如何解决?改变 aNSNumber
值的正确方法是什么?
对不起我的英语不好(如果有任何错误)。
编辑:错误日志如下所示:
[__NSCFType intValue]: unrecognized selector sent to instance 0x73430e0
2012-05-09 16:39:28.064 MyApp[31939:10703] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFType intValue]: unrecognized selector sent to instance 0x73430e0'
*** First throw call stack:
(0x17a6022 0x28afcd6 0x17a7cbd 0x170ced0 0x170ccb2 0x4821 0x17a7e99 0x49d14e 0x49d0e6 0x543ade 0x543fa7 0x543266 0x4c23c0 0x4c25e6 0x4a8dc4 0x49c634 0x2e49ef5 0x177a195 0x16deff2 0x16dd8da 0x16dcd84 0x16dcc9b 0x2e487d8 0x2e4888a 0x49a626 0x1cca 0x1c15)
terminate called throwing an exception
但它并不总是显示此错误。有时它会导致 EXC_BAD_ACCESS。我应该将变量存储在临时变量中NSNumber
吗?