我目前正在使用plist文件,但打算在后端最终构建时切换到json。所以目前我的plist是一个包含一堆字典的数组。
我想使用此信息创建一个只包含具有特定值的字典的新数组。
例如。我的plist包含一堆像这样的位置:
键:位置值:示例地名在这里
key:类型值:室内
我想构建一个只包含“室内”设置为类型值的数组。 然后可能是第二个包含所有“户外”位置的。
这样做的最佳方式是什么,或者我可以直接进入某种教程。
感谢。
答案 0 :(得分:1)
您真正需要做的就是将数组排序为两个数组。我见过的直接方法不会为你做这件事。我的建议是在数组上使用快速枚举,并有条件地将其分成两个新数组。
NSMutableArray *locations = [[NSMutableArray alloc] init];
NSMutableArray *type = [[NSMutableArray alloc] init];
for (NSDictionary *dict in MyPlistArray) {
if ([dict valueForKey:@"locationKey"]) {
[locations addObject:dict];
} else if ([dict valueForKey:@"typeKey"]) {
[type addObject:dict];
}
}
您可能需要使用不同的方法来确定要放入每个数组的键,但是您可以获得一般的想法。
此外,我假设您希望字典数组继续存在,因此您可以将它们设置为属性而不是局部变量。
答案 1 :(得分:1)
只需遍历您的数组并将符合条件的词典添加到新数组中。
NSMutableArray *arrayIndoor = [NSMutableArray array];
NSMutableArray *arrayOutdoor = [NSMutableArray array];
NSString *type;
for (NSDictionary *dict in arrayPList) {
type = [dict objectForKey:@"type"];
if ([type isEqualToString:@"indoor"])
[arrayIndoor addObject:dict];
else if ([type isEqualToString:@"indoor"])
[arrayOutdoor addObject:dict];
}