gpt4 book ai didi

iphone - 无法识别的选择器发送到实例 - 在 setter 方法上

转载 作者:行者123 更新时间:2023-12-03 17:29:24 24 4
gpt4 key购买 nike

每次尝试设置模型对象中任何变量的值时,我都会收到“无法识别的选择器发送到实例”错误,并且应用程序崩溃。 ivars 已被合成,并且不是只读的。我已检查设置的值的类型是否正确。

我不确定这是否与 IB 中的某些连接有关,我已经检查过并重新检查过。

一点额外的信息:我开始在 Xcode 的早期版本中进行开发,并且相同的代码片段用于在该版本上工作。

这是确切的错误消息:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSCFString setDistance:]: unrecognized selector sent to instance 0x380ce50'
2009-11-10 15:10:58.113 CabMeter[7432:207] Stack: (
29303899,
2457931593,
29685819,
29255286,
29107906,
11415,
3140002,
3149770,
3199319,
3236748,
3170686,
3230561,
3179329,
12452,
3918761,
3933474,
4979284,
4987529,
3990121,
2838067,
2746396,
2773173,
37400273,
29088640,
29084744,
37394317,
37394514,
2777091,
9208,
9062
)

最佳答案

The ivars have been synthesized and they are not readonly.

我认为您将实例变量与属性混淆了。属性是您通常合成和/或设为只读的内容,它们通常(但不一定)由实例变量支持。

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSCFString setDistance:]: unrecognized selector sent to instance 0x380ce50'

这就是您应该阅读错误消息的原因。

没有setDistance:消息发送到模型对象,而是将其发送到字符串。最有可能的是,您没有像应有的那样保留模型对象,并且此后不久就使用相同的地址分配了一个字符串。

评论the memory management rules并寻找你没有关注他们的地方。如果所有属性都设置正确,请确保您实际使用它们:一个常见的错误是直接分配给 ivar:

myModel = [[[MyModel alloc] init] autorelease]

而不是通过属性:

self.myModel = [[[MyModel alloc] init] autorelease]

[self setMyModel:[[[MyModel alloc] init] autorelease]]

关于iphone - 无法识别的选择器发送到实例 - 在 setter 方法上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1705574/

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