我有一個NSArrayController,companiesController
綁定到頂級核心數據實體Companies
。使用NSPredicate與核心數據建立深層關係
甲Company
有許多Department
「s和一個Department
有許多Employee
;這些由一對多關係departments
和employees
表示。
基於一個Employee
我以爲我可以動態地用於過濾基於薪金UI所謂的方法中做到這一點的屬性salary
:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"ANY departments.employees.salary < %@", [NSNumber numberWithInt:23000]];
[companiesController setFilterPredicate:predicate];
唉,這給我的錯誤:-[NSCFSet compare:]: unrecognized selector sent to instance
。
謝謝,這是有效的。似乎是一種解決方法,但這只是我猜想的核心數據的問題。 – raheel 2010-01-11 20:08:38
我認爲它與Core Data如何將NSPredicate轉換爲SQLite語句有關。語法不明確:您是指某個部門中的任何或所有員工。另外,我是一名SQL新手,但我的猜測是,即使您的原始謂詞可以在簡單的SQL語句中完成,它也需要一個潛在的大連接,Apple可能會考慮對單個獲取進行過度記憶或性能密集型處理。 – gerry3 2010-01-11 22:12:08
此外,我花了相當長的一段時間,所以一個贊成票將不勝感激:-)。 – gerry3 2010-01-11 22:13:21