私はこの製品のようなモデルを持っています--->オプション(1対多の関係、反転なし)
オプション------->サイズ(1対1の関係、反転なし)
オプション------->sold_out(attribute、BOOLEAN)
ここで、option.sold_outがNOであるすべての製品のすべてのオプションのすべてのサイズの配列をフェッチしたいと思います。
製品の配列を反復処理するのではなく、述語を使用してCoreDataから取得するにはどうすればよいですか?
私はこの製品のようなモデルを持っています--->オプション(1対多の関係、反転なし)
オプション------->サイズ(1対1の関係、反転なし)
オプション------->sold_out(attribute、BOOLEAN)
ここで、option.sold_outがNOであるすべての製品のすべてのオプションのすべてのサイズの配列をフェッチしたいと思います。
製品の配列を反復処理するのではなく、述語を使用してCoreDataから取得するにはどうすればよいですか?
まず、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]];