1

カートに入っている商品のリストを作成する必要があります。だから私はこのデータモデルを持っています: 画像

私の考えは、SKU Product によって 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 ( " (entity: CartItem; id: 0x8aa2820 ; データ: )", " (エンティティ: CartItem; id: 0x8aa2830 ; データ: )", " (エンティティ: CartItem; id: 0x8aa2840 ; データ: )", " (エンティティ: CartItem; id: 0x8aa2850 ; データ: )", " (エンティティ: 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 番目のレベルでフィルタリングされたデータを取得する必要がある場合は、述語で 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 に答える