自从Xcode 5.1更新以来,我无法再存档我的项目。Xcode总是说“找到了多个名为“ count”的方法,结果,参数类型或属性不匹配。此问题是新问题,并且模拟器可以在设备上正常运行。代码如下:
for ( int i = 0; i<[parseJSONArray count];i++){
for (int j = 0; j<[JSON[@"data"][@"menu"][i][@"item"] count];j++){
[pictureURL addObject:JSON[@"data"][@"menu"][i][@"item"][j][@"image"]];
}
}
Xcode在此时显示错误:[JSON[@"data"][@"menu"][i][@"item"] count]
JSON
是一个NSDictionary
。这怎么了
问自己:JSON [@“ data”] [@“ menu”] [i] [@“ item”]的类型是什么?它是“ id”。编译器不知道该对象响应哪种方法。您发送一个“计数”消息。编译器将遍历它所知道的所有类的所有count方法。如果有两个以上不同的对象,则必须投诉。
你可以写
NSDictionary* data = JSON [@"data"];
NSArray* menu = data [@"menu"];
NSDictionary* menuI = menu [i];
NSArray* item = menuI [@"item"];
for (NSDictionary* picture in item)
[pictureURL addObject:picture [@"image"];
更具可读性,易于遵循,运行速度更快且易于调试。
当然你也可以写
for (NSUInteger j = 0; j < item.count; ++j)
{
NSDictionary* picture = item [i];
[pictureURL addObject:picture [@"image"];
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句