2012-05-25 49 views
0

我有一個Loans實體,其中returnedDate屬性可以包含日期或NIL。與另一個實體存在多對多關係,Items使得項目可以與許多Loans相關。我想創建一個謂詞,我可以找到當前沒有loans.returnedDate==NIL的所有項目。創建核心數據謂詞以獲得一對多關係內的數據

假設我現在有以下幾點:

Loan1-item1,returnedDate=NIL 
Loan2-item1,returnedDate=5/4/2012 
Loan3-item2,returnedDate=NIL. 

我想沒有返回項的謂語。

NSPredicate *pred = [NSPredicate predicateWithFormat:@"!(ANY loaned.returnDate==nil)"]; 

退貨item1。

NSPredicate *pred = [NSPredicate predicateWithFormat:@"(NONE loaned.returnDate==nil)"]; 

退貨item1。

NSPredicate *pred = [NSPredicate predicateWithFormat:@"(ANY loaned.returnDate!=nil)"]; 

返回item1。

有人能告訴我什麼邏輯會返回適當的結果嗎?

+0

對不起,但我不明白你的目標?如果你查詢那些沒有'returnDate'的對象,在那個測試用例中,你總是會獲得一個元素。爲什麼你需要返回0個元素?謝謝。 –

+0

對不起,我應該說明我的目標是清楚地說明 - 我想查找目前沒有出借的項目清單(returnDate == nil)。我認爲問題在於過去是否返回了一個項目,如上例中item1的情況那樣返回。 –

回答

0

所以我用下面的謂詞:

(SUBQUERY(loaned, $sub, $sub.returnDate==nil)[email protected] == 0) 

和它返回所期望的結果。如果你能說服我不要使用SUBQUERY,請告訴我如何。