每个NSDictionary代表一个具有某些属性的锅炉:
NSDictionary boilerData =
{
@"Alpha" = [{name: Boiler1, rating: 80}, {name:Boiler2, rating: 90}],
@"Beta" = [{name: Boiler3, rating: 80}, {name:Boiler4, rating: 91}, {name:Boiler5, rating: 78}],
...
}我希望能够过滤,这样我就可以得到所有锅炉的评级为80。我知道我需要一个NSPredicate,但是我不知道如何构建它?我发现的其他文章似乎都不符合这一要求。
发布于 2013-05-02 23:38:43
NSDictionary *boilerData =
@{
@"Alpha" : @[@{@"name": @"Boiler1", @"rating": @80}, @{@"name": @"Boiler2", @"rating": @90}],
@"Beta" : @[@{@"name": @"Boiler3", @"rating": @98}, @{@"name": @"Boiler4", @"rating": @80}, @{@"name": @"Boiler5", @"rating": @90}]
};
NSMutableArray *filteredArray = [[NSMutableArray alloc] init];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"rating = 80"];
for (NSArray *array in [boilerData allValues]) {
[filteredArray addObjectsFromArray:[array filteredArrayUsingPredicate:predicate]];
}
NSLog(@"all boilers with rating = 80 : %@", filteredArray);https://stackoverflow.com/questions/16341678
复制相似问题