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