gpt4 book ai didi

objective-c - 发现多个名为 "count"的方法具有不匹配的结果、参数类型或属性

转载 作者:太空狗 更新时间:2023-10-30 03:30:49 25 4
gpt4 key购买 nike

自从更新到 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"] 的类型是什么?它是“身份”。编译器不知道这个对象响应了哪个方法。您发送一条“计数”消息。编译器遍历它所知道的所有类的所有计数方法。如果有超过两个不同的,它必须提示。

你可以写

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"];
}

关于objective-c - 发现多个名为 "count"的方法具有不匹配的结果、参数类型或属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22313294/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com