objective-c - Objective C 嵌套字典访问无效选择器错误

标签 objective-c cocoa google-maps google-maps-api-3

所以我是 Objective C 的新手,我正在尝试解析地理编码 API JSON 响应的字典表示。这是我得到的:

NSString *responseString = [request responseString];
NSDictionary *responseDict = [responseString JSONValue];
NSDictionary *results = [responseDict objectForKey:@"results"];
NSDictionary *geometry = [results objectForKey:@"geometry"];

我收到 SIGABRT 错误,指示选择器无效。我不知道如何解决这个问题,或者甚至更好,是否有另一种方法可以进行嵌套字典访问?

您可以在此处查看 json 响应:

http://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&sensor=true

编辑:添加了更多代码

最佳答案

您需要检查-objectForKey:返回的对象的类。 -objectForKey: 返回一个 id ,您假设它是一个 NSDictionary 不幸的是,在您收到的响应中,“结果”将返回一个您的 JSON 解析器可能会以 NSArray 的形式返回该数组,该数组不会响应 -objectForKey:

关于objective-c - Objective C 嵌套字典访问无效选择器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6838623/

相关文章:

ios - 文本字段作为搜索栏崩溃

javascript - 我可以在 Google Places API 调用中使用格式化地址吗

macos - 如何在 super View 中移动 subview

objective-c - OpenGL用鼠标绘图

java - 在 Android - Java 中显示自定义样式的 Google map

java - 抽屉导航中的 map Activity

objective-c - 使用 objective-c 自定义 UIView

Objective-C 属性和综合逻辑

ios - iOS 应用程序中的构建信息(构建日期/时间应用程序)

cocoa - ARC、Nib 文件和释放顶级对象