2016-04-21 32 views
0

我已經以下類如何使用NSPredicate過濾另一個類屬性?

EntityOne 
- Property1 : string 
- Property2 : int 
- Property3 : Array of EntityTwo 

EntityTwo 
- Property1 : string 
- Property2 : int 

我想要寫一個NSPredicate其中當我保持EntityOne對象陣列上執行它EntityTwoObj.property1過濾。

可能嗎?

我曾嘗試以下操作:

NSPredicate *bPredicate = [NSPredicate predicateWithFormat: 
@"Property1 CONTAINS[cd] %@ 
OR Property2 CONTAINS[cd] %@ 
OR Property3.Property1 CONTAINS[cd] %@", 
newString, newString, newString]; 

但它不工作。

如果我刪除了最後一個過濾器,那麼它工作正常。

+0

您可能需要一個'ANY'或'IN'作爲最後一個。 – Larme

+0

@Larme,非常感謝你,它的工作原理! :) – Hemang

回答

0

感謝@Larm,我可以通過在我的謂詞中添加ANY運算符來解決這個問題。

NSPredicate *bPredicate = [NSPredicate predicateWithFormat: 
@"Property1 CONTAINS[cd] %@ 
OR Property2 CONTAINS[cd] %@ 
OR ANY Property3.Property1 CONTAINS[cd] %@", 
newString, newString, newString]; 
相關問題