1

我需要列出我购物车上的产品列表。所以我有这个数据模型: 图片

我的想法是通过 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] *** 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“无法解析格式字符串“sku.cartItem IN(”(实体:CartItem; id: 0x8aa2820 ; data: )", " (entity: 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 –––––</p>

编辑(已解决)

为了帮助别人并总结解决方案,不能使用[NSString stringWithFormat:@...],正确的方法是直接使用 [NSPredicate predicateWithFormat: @"...", args ]。

只是另一个提示!如果您有同样的问题并且需要为第 n 级过滤一些数据,请在 Predicate 上使用 ANY + IN:

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

1 回答 1

1

谓词使用自己的格式替换。
采用:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"ANY sku.cartItem IN %@", cartItemArray];
于 2013-10-29T17:59:21.997 回答