0
我有一个NSDictionary包含一些锅炉制造商的150个关键。每个键的值是一个NSDictionary的NSArray。每一个的NSDictionary代表的一些性质锅炉:NSDictionary的NSArray的过滤器和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,但我不能弄清楚如何构建它?我发现的其他文章都不符合这个要求。
这样做的更简单的方法是NSArray * filteredArray = [[boilerData valueForKeyPath:@“allValues。@ unionOfArrays”] filteredArrayUsingPredicate:predicate]'。 – Chuck 2013-05-02 18:18:26
@Chuck感谢您的代码。我已经将它整合到解决方案中,但是我必须做[[boilerData allValues] valueForKeyPath:@“@ unionOfArrays。@ self”];让它起作用。我不知道为什么[boilerData valueForKeyPath:@“allValues。@ unionOfArrays。@ self”];窃听了。 – markpirvine 2013-05-02 20:48:40
@markpirvine:D'oh,它不会像我写的那样工作,因为NSDictionary如何处理'valueForKey:' - 它是'objectForKey:'的填充。愚蠢的我忘记了。 – Chuck 2013-05-02 20:53:34