0

可能重复:
发送到实例的无法识别的选择器

谁能告诉我这个错误代码发生了什么?人苹果是神秘的。我刚刚通过 ObjectiveResource 对我知道的数据进行了调用。

-[NSDecimalNumber allKeys]: unrecognized selector sent to instance 0x5c671f0
2011-03-02 02:07:56.169 Mobile[13839:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSDecimalNumber allKeys]: unrecognized selector sent to instance 0x5c671f0'
*** Call stack at first throw:
(
    0   CoreFoundation                      0x0133bbe9 __exceptionPreprocess + 185
    1   libobjc.A.dylib                     0x014905c2 objc_exception_throw + 47
    2   CoreFoundation                      0x0133d6fb -[NSObject(NSObject) doesNotRecognizeSelector:] + 187
    3   CoreFoundation                      0x012ad366 ___forwarding___ + 966
    4   CoreFoundation                      0x012acf22 _CF_forwarding_prep_0 + 50
    5   Mobile                      0x00013aa5 +[NSObject(JSONSerializableSupport) deserializeJSON:] + 832
    6   Mobile                      0x000138ad +[NSObject(JSONSerializableSupport) deserializeJSON:] + 328
    7   Mobile                      0x00012f0e +[NSObject(JSONSerializableSupport) fromJSONData:] + 161
    8   Mobile                      0x0000c8fa +[NSObject(ObjectiveResource) findAllRemoteWithResponse:] + 336
    9   Mobile                      0x0000c933 +[NSObject(ObjectiveResource) findAllRemote] + 43
    10  Mobile                      0x00004732 -[AllTableViewController refresh] + 103
4

3 回答 3

2

正如其他人指出NSDecimalNumber的那样,不响应allKeys选择器并导致崩溃。

这可能是因为 NSDictionary 的实例,预期的消息响应者由于某种原因被过早地释放(缺少保留?),并且它在内存中的地址被NSDecimalNumber获取错误消息的实例占用。

因此,要解决该问题,请尝试找到该消息的行并检查该代码中的内存管理是否一切正常。

于 2011-03-02T08:34:29.317 回答
1

您调用 allKeys 方法NSDecimalNumber,并且NSDecimalNumber不能使用此方法,这就是您崩溃的原因。

NSDictionary使用or调用 allKeys 方法NSMutableDictionary

因此where,在获取此日志后键入您需要编辑代码的行号。

于 2011-03-02T08:17:32.840 回答
0

NSDecimalNumber 不支持 allKeys 方法。

于 2011-03-02T08:15:45.300 回答