EntityA
は対多関係にありますEntityB
(および とEntityB
対一関係にありEntityA
ます)。の配列がありますEntityB
(より正確には、を表すNSArray
インスタンスを含む があります)。配列内の少なくとも 1 つの s と関係があるすべての s をフェッチするを作成したいと考えています。このフェッチ要求の述語をどのように記述すればよいですか?NSManagedObject
EntityB
NSFetchRequest
EntityA
EntityB
以下は機能しますが、最適ではないと思います。理解するのは難しく、これを表現するより良い方法があるに違いないと確信しています。
NSArray *entityBs = ...;
NSMutableArray *containsEntityBSubPredicates = [NSMutableArray new];
for (NSManagedObject *entityB in entityBs) {
[containsEntityBSubPredicates addObject:[NSPredicate predicateWithFormat:@"%@ IN entityBs", entityB]];
}
NSPredicate *containsEntityBsPredicate = [NSCompoundPredicate orPredicateWithSubpredicates:containsEntityBSubPredicates];
私もこれを試しましたが、うまくいきません:
NSArray *entityBs = ...;
NSPredicate *containsEntityBsPredicate = [NSPredicate predicateWithFormat:@"ANY %@ in entityBs", entityBs];
もっと簡単な解決策がありませんか?