我需要列出购物车中的商品清单。 所以我有这个数据模型:
我的想法是让SKU产品的所有产品都有一个cartItem来制作这个“产品列表”。
我的问题是最好的方法是什么?
我尝试对Product实体进行fetchRequest并应用此NSPredicate:
NSPredicate *predicate = [NSPredicate predicateWithFormat:[NSString stringWithFormat:@"sku.cartItem IN %@", cartItemArray]];
错误我收到此错误:
2013-10-29 15:08:10.860 Prototipo [85766:70b] ***终止app 未被捕获的异常'NSInvalidArgumentException',原因:'无法 解析格式字符串“sku.cartItem IN( “(entity:CartItem; id:0x8aa2820; 数据:))“, “(entity:CartItem; id:0x8aa2830; 数据:))“, “(entity:CartItem; id:0x8aa2840; 数据:))“, “(entity:CartItem; id:0x8aa2850; 数据:))“, “(entity:CartItem; id:0x8aa2860; 数据:))“, “(entity:CartItem; id:0x8aa2870; 数据:))“, “(entity:CartItem; id:0x8aa2880; 数据:))“, “(entity:CartItem; id:0x8aa2890; 数据:))“, “(entity:CartItem; id:0x8aa28a0; 数据:))“, “(entity:CartItem; id:0x8aa28b0; 数据:))“, “(entity:CartItem; id:0x8aa28c0; 数据:))“, “(entity:CartItem; id:0x8aa28d0; 数据:))“, “(entity:CartItem; id:0x8aa28e0; 数据:)“)”'
非常感谢你。 感谢您的关注。
----- X -----
编辑(已解决)
为了帮助别人并总结解决方案,它不能用于 [NSString stringWithFormat:@ ...] ,正确的方法是直接使用[NSPredicate predicateWithFormat: @“...”,args ]。
还有一个提示!如果您遇到同样的问题并且需要过滤第n级的数据,请在谓词上使用ANY + IN:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"ANY sku.cartItem IN %@", cartItemArray];
答案 0 :(得分:1)
谓词使用自己的格式替换。
使用:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"ANY sku.cartItem IN %@", cartItemArray];