我正在尝试按照本教程http://ios-blog.co.uk/iphone-development-tutorials/parsing-json-on-ios-with-asihttprequest-and-sbjson/同时执行ASIHttp和SBJSon教程,直到该行
NSMutableArray *colorTitles = [jsonDictionary objectForKey:@"title"];
它会因错误而崩溃
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSArrayM objectForKey:]: unrecognized selector sent to instance 0x9340d20'
我已经尝试过使用NSArray,NSString并且我的想法已经用完......我的代码与链接完全相同
答案 0 :(得分:1)
当您尝试调用不属于相应类或超类的方法时,可能会发生这种情况,然后在这种情况下会出现错误:unrecognized selector sent to instance
。
请检查您获得的JSON。 根据JSON Response(数据)尝试解析它。
我想告诉你关于JSON:
JSON is built on two structures:
A collection of name/value pairs. In various languages, this is realized as an object, record, struct, dictionary, hash table, keyed list, or associative array.
An ordered list of values. In most languages, this is realized as an array, vector, list, or sequence.
在JSON中,他们采用以下形式:
<强>对象强>
对象是一组无序的名称/值对。对象以{(左括号)开头,以}结尾(右大括号)。每个名称后跟:(冒号),名称/值对用(逗号)分隔。
<强>阵列:强>
数组是有序的值集合。数组以[(左括号)开头,以]结尾(右括号)。值以(逗号)分隔。
<强>值强>
值可以是双引号或数字,或true或false或null,或对象或数组的字符串。这些结构可以嵌套。
我认为您正在获得Value JSON,请尝试以下操作。并且有一件事你不能将值(创建对象)分配给NSmutableArray字面意思。所以请在Manner下面做。
NSArray *colorTitles = [jsonDictionary valueForKey:@"title"];
如果仍然没有得到正确的结果。
答案 1 :(得分:0)
objectForKey
是NSDictionary
的方法,而非NSArray
。您可能在JSON字符串解析中缺少(或过度)一步。
答案 2 :(得分:0)
通常,当您尝试访问dealloc'd对象时会出现此类错误。检查您是否过度释放或未保留jsonDictionary
。