簡體   English   中英

如何通過第三級關系過濾核心數據獲取請求

[英]How to filter a Core Data Fetch Request by the 3rd level relationship

我需要列出購物車中存在的產品列表。 所以我有這個數據模型: 圖片

我的想法是通過SKU產品獲得所有具有cartItem的產品,以使該產品成為“產品列表”。

我的問題是最好的方法是什么?

我試圖對產品實體進行fetchRequest並應用此NSPredicate:

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

錯誤,我得到這個錯誤:

2013-10-29 15:08:10.860 Prototipo [85766:70b] ***由於未捕獲的異常'NSInvalidArgumentException'而終止應用程序,原因:'無法解析格式字符串“ sku.cartItem IN(”(實體:CartItem; id:0x8aa2820; data:)“,”(實體:CartItem; id:0x8aa2830; data:)“,”(entity:CartItem; id:0x8aa2840; data:)“,”(entity:CartItem; id:0x8aa2850; data :)“,”(實體:CartItem; id:0x8aa2860;數據:)“,”(實體:CartItem; id:0x8aa2870;數據:)“,”(實體:CartItem; id:0x8aa2880;數據:)“,” (實體:CartItem; ID:0x8aa2890;數據:)“,“(實體:CartItem; ID:0x8aa28a0;數據:)”,“(實體:CartItem; ID:0x8aa28b0;數據:)”,“(實體:CartItem; id:0x8aa28c0;數據:)“,”(實體:CartItem; id:0x8aa28d0;數據:)“,”(實體:CartItem; id:0x8aa28e0;數據:)“)”'

非常感謝。 感謝您的關注。

- - - X - - -

編輯(已解決)

為了幫助別人並總結解決方案,不能使用[NSString stringWithFormat:@ ...] ,正確的方法是直接使用[NSPredicate predicateWithFormat: @“ ...”,args ]。

還有另一個提示! 如果您遇到相同的問題,並且需要對第n級進行某些數據過濾,請在謂詞上使用ANY + IN:

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

謂詞使用其自己的格式替換。
采用:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM