2013-07-23 37 views
0

這是謂語:核心數據未實現SQL生成謂詞

group.AddressElements CONTAINS <AddressElement: 0x18a4b610> (entity: AddressElement; id: 0xb76dc60 <x-coredata://4F0D8450-8BB8-4361-AF55-69ED35799058/AddressElement/p2468> ; data: <fault>) 

粗略地說,我希望檢索具有一對一的關係與一組實體和組具有一對多的關係與AddressElement實體。我想要檢索的對象必須在相關組的AddressElement內具有特定的AddressElement對象。所以我寫了謂詞:group.AddressElement必須包含我作爲參數,這是<AddressElement: 0x18a4b610> (entity: AddressElement; id: 0xb76dc60 <x-coredata://4F0D8450-8BB8-4361-AF55-69ED35799058/AddressElement/p2468> ; data: <fault>)

當我嘗試獲取請求傳遞的對象,我有一個未實現的SQL生成崩潰謂詞例外。

我在做什麼錯?

回答

2

正如你可以看到herecontains關鍵字用於字符串比較。

嘗試修改您的謂詞(未測試):
編輯:

我已經測試了:

[NSPredicate predicateWithFormat:@"ANY group.AddressElements = %@",someAddressElement] 

和:

[NSPredicate predicateWithFormat:@"%@ IN manufactur.manufactures",someAddressElement] 

兩個導致以下SQL語句:

SELECT DISTINCT 0, t0.Z_PK, t0.Z_OPT, t0.ZSOMEPROP, t0.ZTOONE FROM ZSOMEENTITY t0 JOIN ZTHEONEENTITY t1 ON t0.ZTOONE = t1.Z_PK JOIN ZTHEMANY t2 ON t1.Z_PK = t2.ZTOMANY WHERE t2.Z_PK = ? 

(在iOS 6.1測試)

+0

我嘗試這樣謂詞:'(實體:AddressElement; ID:0x19e02780 ;數據:)IN group.AddressElements'。這是不行的,它有同樣的問題:未實現SQL生成謂詞 –

+0

看到我的編輯,請嘗試其他選擇 –

+0

幹得好,現在它的工作原理 –