2014-03-05 45 views
0

實體A與實體B有一對多的關係,稱爲points。 我有B的NSPredicate。 我需要獲取滿足此謂詞的B的任何對象的A的對象。 我如何用一個NSPredicate來做到這一點?將B的謂詞插入到與B的關係鏈接的A的謂詞中

我不能這樣做,兩個獨立的操作(先找到B,然後用它們來尋找A),因爲我需要保持NSFetchedResultsController對於A必須作出反應(調用回調controllerWillChangeContentcontroller:didChangeObject:atIndexPath:forChangeType:newIndexPath:controllerDidChangeContent)當任何對象的B被添加/改變/移除。

另一個說明 - 我從其他類獲取這些謂詞,我不知道它包含什麼。因此,我不能手動將其插入謂詞A.

回答

0

如果你的第B謂詞(例如)

[NSPredicate predicateWithFormat:@"someProp == %@", someValue] 

則謂詞來獲取所有具有滿足這個屬性的任何B對象一個對象 將是

[NSPredicate predicateWithFormat:@"ANY points.someProp == %@", someValue] 

取出的結果控制器將跟蹤對甲 的points屬性(添加或刪除乙對象)。但它不會跟蹤B對象的屬性更改。原因是FRC不跟蹤相關對象的更改,請比較 NSFetchedResultsController with relationship not updating

+0

這是正確的,但我從其他類獲得這些謂詞B,我不知道它包含什麼。所以我只能使用NSPredicate對象。無論如何感謝您的回答。 – surfrider