2013-10-29 31 views
1

我需要製作出現在我的購物車上的產品列表。 所以我有這個數據模型: image如何根據第三級關係過濾核心數據提取請求

我的想法是讓有由SKU產品一cartItem,使這個「產品目錄」的所有產品。

我的問題是最好的辦法是什麼?

我試圖讓一個fetchRequest商品實體並應用此NSPredicate:

NSPredicate *predicate = [NSPredicate predicateWithFormat:[NSString stringWithFormat:@"sku.cartItem IN %@", cartItemArray]]; 

錯誤我得到這個錯誤:

2013-10-29 15:08:10.860 Prototipo[85766:70b] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Unable to parse the format string "sku.cartItem IN ( " (entity: CartItem; id: 0x8aa2820 ; data:)", " (entity: CartItem; id: 0x8aa2830 ; data:)", " (entity: CartItem; id: 0x8aa2840 ; data:)", " (entity: CartItem; id: 0x8aa2850 ; data:)", " (entity: CartItem; id: 0x8aa2860 ; data:)", " (entity: CartItem; id: 0x8aa2870 ; data:)", " (entity: CartItem; id: 0x8aa2880 ; data:)", " (entity: CartItem; id: 0x8aa2890 ; data:)", " (entity: CartItem; id: 0x8aa28a0 ; data:)", " (entity: CartItem; id: 0x8aa28b0 ; data:)", " (entity: CartItem; id: 0x8aa28c0 ; data:)", " (entity: CartItem; id: 0x8aa28d0 ; data:)", " (entity: CartItem; id: 0x8aa28e0 ; data:)")"'

太謝謝你了。 感謝您的關注。

----- ----- X

EDIT(解決)

爲了幫助別人,並總結了解決方案,它不能使用[的NSString stringWithFormat :@ ...],正確的方法是直接使用[NSPredicate predicateWithFormat:@「...」,參數]。

只是另一個提示!如果你有同樣的問題,需要得到過濾的N級的一些數據,可以使用任何+ IN謂詞:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"ANY sku.cartItem IN %@", cartItemArray]; 
+0

謝謝@danielbeard。 –

回答

1

謂語用自己的格式化更換。
使用:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"ANY sku.cartItem IN %@", cartItemArray]; 
+0

謝謝@丹 - 謝爾!我替換了,但現在我有另一個錯誤:「謂詞未實現的SQL生成」。也許不是過濾產品的最佳方式? –

+0

順便說一句我嘗試反轉:「%@ IN sku.cartItem」,但現在我得到了這個錯誤:' - [__ NSArrayM longLongValue]:無法識別的選擇器發送到實例0x15d3a7d0' –

+0

我編輯了我的答案(忘了添加'ANY '關鍵字爲多對多關係) –