我使用touchjson库。我收到了json结构。
{"My dishes": ""}
如果我没有我的菜或{"My dishes": [{"dish": "rice with fish""restaurant_id": "35", "latitude": "39.783871","longitude": "-96.314759"}]}
如果我有一道菜。-
NSDictionary *all_dish = [dictionary objectForKey:@"My dishes"];
for (NSDictionary *my_dish in all_dish) {
//some code
}
在第一种情况下,我得到了
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSCFString countByEnumeratingWithState:objects:count:]: unrecognized selector sent to instance 0x2900688'
如何解决问题?
答案 0 :(得分:4)
在第一种情况下,键My dishes
的对象不是字典,而是NSString
,它不支持快速枚举。
在第二种情况下,all_dishes
不是NSDictionary
而是NSArray
。我很惊讶它有效。
没有处理菜肴的方式从我的立场被打破:如果你没有菜My dishes
应该有null
或空列表,而不是“”。
如果您无法控制此问题,请在尝试对其进行枚举之前检查My dishes
的值是否为NSArray
。
答案 1 :(得分:3)
if ([allDish isKindOfClass: [NSDictionary class]]) {
for (NSDictionary *my_dish in all_dish) {
if ([myDish isKindOfClass: [NSDictionary class]]) {
//...
}
}
}