iOS Cocoa NSArrayI 长度]:发送到实例的无法识别的选择器

Posted

技术标签:

【中文标题】iOS Cocoa NSArrayI 长度]:发送到实例的无法识别的选择器【英文标题】:iOS Cocoa NSArrayI length]: unrecognized selector sent to instance 【发布时间】:2014-06-09 00:56:33 【问题描述】:

我正在尝试确定导致此错误的原因:

2014-06-08 20:40:44.076 数据库[8656:70b] -[__NSArrayI 长度]: 无法识别的选择器发送到实例 0x8a44050

这里是代码。

NSDictionary* json = [NSJSONSerialization JSONObjectWithData:responseData options:0 error:&error];

这是发生错误的断点:NSLog([json allKeys]);

用作输入的 JSON 示例:

"1":"key":"1","contentONE":"aaa","contentTWO":"testing","2":"key":"2","contentONE":"bbb","contentTWO":null,"3":"key":"3","contentONE":"ccc","contentTWO":"testing"

【问题讨论】:

检查你的 "json" 字典是否不是 nil 并尝试 NSLog("%@", json);查看返回数据的结构。 看起来它有一个它认为是字符串的数组。长度是一个字符串方法。 【参考方案1】:

[json allKeys] 返回一个NSArray,而NSLog 需要一个格式化字符串。试试这个:

NSLog(@"%@", [json allKeys]);

【讨论】:

很遗憾看到有人否决了一个诚实的问题,但我非常感谢您的正确回答。非常感谢!

以上是关于iOS Cocoa NSArrayI 长度]:发送到实例的无法识别的选择器的主要内容,如果未能解决你的问题,请参考以下文章

Cordova iOS 3.6.3+ 问题 - [__NSArrayI 长度]:无法识别的选择器

-[__NSArrayI 长度]:无法识别的选择器发送到实例 0x7f1e9f90

第20月第29天 cocoa抽象工厂

目标 C 错误 -[__NSArrayI 长度]:无法识别

-[__NSArrayI replaceObjectAtIndex:withObject:]: 无法识别的选择器发送到实例

为啥我得到“[__NSArrayI allKeys]:无法识别的选择器发送到实例”/为啥 NSDictionary 正在转换?