0

私はこの製品のようなモデルを持っています--->オプション(1対多の関係、反転なし)

オプション------->サイズ(1対1の関係、反転なし)

オプション------->sold_out(attribute、BOOLEAN)

ここで、option.sold_outがNOであるすべての製品のすべてのオプションのすべてのサイズの配列をフェッチしたいと思います。

製品の配列を反復処理するのではなく、述語を使用してCoreDataから取得するにはどうすればよいですか?

4

1 に答える 1

1

まず、Core Data で一方向の関係を使用しないでください。自分で使用することはできませんが、Core Data は参照整合性のために必要です。

エンティティに逆数が必要なのはなぜですか?

さて、あなたの要求について。このようなものを使用できます。

request.entity = [NSEntityDescription entityForName:@"Product" inManagedObjectContext:managedObjectContext];
request.prdicate = [NSPredicate predicateWithFormat:@"ANY option.sold_out == %@",[NSNumber numberWithBool: YES]];

アップデート

さて、逆を必要とするのはあなたです —サイズ---->オプションの関係なしにこの要求を行うための適切な方法がないからです。ある場合は、それをオプションと呼びましょう。次のようにリクエストを実行できます。

request.entity = [NSEntityDescription entityForName:@"Size" inManagedObjectContext:managedObjectContext];
request.prdicate = [NSPredicate predicateWithFormat:@"option.sold_out == %@",[NSNumber numberWithBool: YES]];
于 2012-04-20T10:59:40.487 に答える