我有一个具有以下架构/结构的plist:
dictionary
key1
item1
key2
item2
key3
item3
dictionary
...
我希望将每个字典的第一个键(key1)的item(item1)加载到NSArray,这样我就可以将nsarray加载到UITableView中。
我想到了这一点:
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"data.plist"];
NSMutableArray *array = [[NSMutableArray alloc] initWithContentsOfFile:path];
然后我想添加这样的东西:
tablearray = [array objectsForKey:@"key1"];
但是这不作为命令存在。好像我需要一些帮助...... :)。
答案 0 :(得分:2)
您可以遍历数组并以这种方式添加对象:
NSMutableArray *tablearray = [NSMutableArray arrayWithCapacity:[array count]];
for (NSDictionary *dict in array) {
[tablearray addObject:[dict objectForKey:@"key1"]];
}
答案 1 :(得分:0)
Apple提供pList programming guide,它描述了如何从pList读取并写入其中。你可以去看看吧。
我们将从pList获取数据作为NSData,并使用以下方法将其转换为NSDictionary,
NSData *plistXML = [[NSFileManager defaultManager] contentsAtPath:plistPath];
NSDictionary *temp = (NSDictionary *)[NSPropertyListSerialization
propertyListFromData:plistXML
mutabilityOption:NSPropertyListMutableContainersAndLeaves
format:&format
errorDescription:&errorDesc];
您可以使用
添加响应字典来引入数组NSMutableArray * myArray = [NSMutableArray alloc] init];
//temp is the response dictionary
NSArray * myKeys = [temp allKeys];
for (int index = 0; index<[myKeys count]; index++) {
id value = [temp valueForKey:[myKeys objectAtIndex:index]];
[myArray addObject:value];
}
现在使用myArray。
我认为这就是你所需要的。