解析时无法识别的选择器 JSON
Unrecognized selector when parsing JSON
下面的照片是我尝试从 URL 中读取的 JSON 脚本的屏幕截图。在下面的代码部分,我设法获取 'name' 属性并将其分配给 'name' NSString 对象,但是当我尝试对 'address' 执行相同操作时,我收到以下错误:
[__NSCFDictionary objectAtIndexedSubscript:]: unrecognized selector sent to instance 0x174260980
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFDictionary objectAtIndexedSubscript:]: unrecognized selector sent to instance 0x174260980'
我在 'venues' 中的做法与在 'location' 中的做法有何不同?我尝试了许多不同的方法来做到这一点,其中一些包括数组,但似乎没有任何效果。
NSURL *url = [NSURL URLWithString:urlString];
NSData *jsonData = [NSData dataWithContentsOfURL:url];
NSError *error = nil;
NSDictionary *dataDictionary = [NSJSONSerialization JSONObjectWithData:jsonData options:0 error:&error];
NSDictionary *responseDictionary = [dataDictionary objectForKey:@"response"];
NSDictionary *venueDictionary = [responseDictionary objectForKey:@"venues"];
for (NSDictionary *dict in venueDictionary) {
NSLog(@"%@", dict);
NSString *name = [dict objectForKey:@"name"];
NSDictionary *locationDictionary = [dict objectForKey:@"location"];
for (NSDictionary *locationDict in locationDictionary) {
NSString *address = [locationDict objectForKey:@"address"];
NSLog(@"%@", address);
}
}
您希望 "location" 键指向一个数组,但事实并非如此。它指向一个对象,摆脱 for (NSDictionary *locationDict in locationDictionary) {
并只是从 locationDictionary
中拉出地址。
下面的照片是我尝试从 URL 中读取的 JSON 脚本的屏幕截图。在下面的代码部分,我设法获取 'name' 属性并将其分配给 'name' NSString 对象,但是当我尝试对 'address' 执行相同操作时,我收到以下错误:
[__NSCFDictionary objectAtIndexedSubscript:]: unrecognized selector sent to instance 0x174260980
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFDictionary objectAtIndexedSubscript:]: unrecognized selector sent to instance 0x174260980'
我在 'venues' 中的做法与在 'location' 中的做法有何不同?我尝试了许多不同的方法来做到这一点,其中一些包括数组,但似乎没有任何效果。
NSURL *url = [NSURL URLWithString:urlString];
NSData *jsonData = [NSData dataWithContentsOfURL:url];
NSError *error = nil;
NSDictionary *dataDictionary = [NSJSONSerialization JSONObjectWithData:jsonData options:0 error:&error];
NSDictionary *responseDictionary = [dataDictionary objectForKey:@"response"];
NSDictionary *venueDictionary = [responseDictionary objectForKey:@"venues"];
for (NSDictionary *dict in venueDictionary) {
NSLog(@"%@", dict);
NSString *name = [dict objectForKey:@"name"];
NSDictionary *locationDictionary = [dict objectForKey:@"location"];
for (NSDictionary *locationDict in locationDictionary) {
NSString *address = [locationDict objectForKey:@"address"];
NSLog(@"%@", address);
}
}
您希望 "location" 键指向一个数组,但事实并非如此。它指向一个对象,摆脱 for (NSDictionary *locationDict in locationDictionary) {
并只是从 locationDictionary
中拉出地址。