我正在处理我试图解析的_NSDictionary。我使用此代码
NSDictionary *nextArray = [_classDictionary
valueForKeyPath:@"response.page_records.page_record"];
for (NSDictionary *roster2 in nextArray) {
[pageName addObject:[roster2 objectForKey:@"title"]];
[pageID addObject:[roster2 objectForKey:@"id"]];
}
问题是这个NSDictionary是从服务器转换的XML数据,有时这个数据有一个带有"标题的对象"关键,有时它不是。每当服务器发送没有标题密钥的数据(也没有密钥路径)时,我的应用程序崩溃,我得到一个valueForKeyPath找不到错误。有没有办法防止抛出这个错误?
答案 0 :(得分:1)
您可以使用字典上的allKeys方法转储所有存在的密钥,然后检查特定密钥:
for (NSDictionary *roster2 in nextArray) {
NSArray *keys = [roster2 allKeys];
if ([keys containsObject:@"title"]
[pageName addObject:[roster2 objectForKey:@"title"]];
[pageID addObject:[roster2 objectForKey:@"id"]];
}