[英]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.