我正在处理一个试图解析的_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数据,有时这些数据有一个带有"title"键的对象,有时却没有。每当服务器发送没有标题密钥(也没有密钥路径)的数据时,我的应用程序就会崩溃,我得到一个valueForKeyPath找不到错误。有没有办法防止抛出这个错误?
您可以在字典上使用allKeys方法来转储所有存在的密钥,然后检查特定密钥:
for (NSDictionary *roster2 in nextArray) {
NSArray *keys = [roster2 allKeys];
if ([keys containsObject:@"title"]
[pageName addObject:[roster2 objectForKey:@"title"]];
[pageID addObject:[roster2 objectForKey:@"id"]];
}