2011-08-03 56 views
0

我試圖以編程方式執行獲取請求以從「EntityA」中檢索某些實體。不過,我需要將獲取請求的目的地設置爲「EntityB」,使謂詞的工作方式類似於通過XC中的檢查器面板執行的操作。不知道如何以編程方式設置此屬性?如何以編程方式指定Core Data fetchRequest的目標?

THX

+0

您是否嘗試設置nsfetchrequest的實體? – Robin

+0

我可能會感到困惑,但我將實體設置爲EntityA,這是我希望返回的實體的類型,但是我需要將目標設置爲diff實體EntityB,因爲這是我的謂詞的結構。 – James

回答

1

每次提取只有一個實體,因爲它的目標。用於提取的謂詞只能對目標實體的屬性和關係進行操作。如果您想測試另一個實體的屬性,則必須存在從目標實體到另一個實體的關係。

假設你有以下數據模型:

Alpha{ 
    name:string 
    beta<-->Beta.alpha 
} 

Beta{ 
    cost:number 
    alpha<-->Alpha.beta 
} 

Gamma{ 
    date:date 
} 

如果用於取不Alpha,那麼你可以創建一個測試通過每個Alpha對象的beta關係Beta屬性的謂詞的目標實體。

NSPredicate *p=[NSPredicate predicateWithFormat:@"beta.number>5"]; 

...但你不能創建因爲沒有關係,這將訪問Gamma屬性的謂詞。

+0

好thx ......... – James

+0

但後續問題。什麼是創建提取屬性時在檢查器面板中使用的「目標」字段?可以將此值設置爲比獲取屬性所屬實體的差異值? – James

+0

對上述評論有何看法? – James

相關問題