首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSDictionary的NSArray的Filter和NSDictionary

NSDictionary的NSArray的Filter和NSDictionary
EN

Stack Overflow用户
提问于 2013-05-02 23:16:01
回答 1查看 596关注 0票数 0

每个NSDictionary代表一个具有某些属性的锅炉:

代码语言:javascript
复制
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,但是我不知道如何构建它?我发现的其他文章似乎都不符合这一要求。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-02 23:38:43

代码语言:javascript
复制
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);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16341678

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档