gpt4 book ai didi

iphone - 导致 SIGABRT 的 NSNumber

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:51:33 27 4
gpt4 key购买 nike

我有一个奇怪的问题(如果你问我的话很奇怪)。我正在使用 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]]];

frequency NSNumber 和 freqLabel 我的标签在哪里,每次调用时我都会将值写入其中。为什么这是不正确的?当我第一次调用它时它起作用了。 NSNumber numberWithInt 是否总是返回一个我试图分配给频率的新对象?我该如何解决?更改 NSNumber 值的正确方法是什么?

抱歉我的英语不好(如果有任何错误)。

编辑:错误日志如下所示:

[__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 中吗?

最佳答案

您不能只分配/初始化某物一次,然后就可以终身引用该类型。当您将频率分配给 numberWithInt 时,您将使用 autorelease覆盖先前的 alloc/init 值(稍后将释放并导致您描述的确切行为) .它与 self.frequency 一起工作的原因是因为您的属性被设置为保留属性,因此它会自动保留自动释放值。在你的 numberWithInt 行中添加一个 retain 就可以了(或者用 self.frequency 做你现在正在做的事情)。

关于iphone - 导致 SIGABRT 的 NSNumber,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10518265/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com