0

多対多の関係で接続された、EntityAとEntityBの2つのエンティティを想定します。リレーション属性がそれぞれrelatedEntityBsとrelatedEntityAsであるとします。そして、私はEntityBインスタンスのNSArrayを持っています。nsarrayにあるすべてのインスタンスに関連するすべてのEntityAインスタンスを検索したいと思います。つまり、配列が[entityB1、.....、entityBn]の場合です。entityBnまでentityB1、wntityB2に関連するすべてのEntityAインスタンスを検索します。この種の述語をどのように書くことができますか?

4

1 に答える 1

2

この述語はそれを行う必要があります:

NSMutablArray *predicateArray = [NSMutableArray array];
for (int i=0;i<entityBArray.count;i++){
     NSPredicate *subPredicate = [NSPredicate predicateWithFormat:@"ANY relatedEntityBs contains %@",[entityBArray objectAtIndex:i];
     [predicateArray addObject:subPredicate] ;
} 
NSCompoundPredicate *daddyPredicate = [NSCompoundPredicate orPredicateWithSubpredicates:predicateArray];

relatedEntityB基本的に、各サブ述語は、配列の単一のオブジェクトが含まれているかどうかをチェックし、最後にdaddyPredicateそれらをすべてORで結合します。

于 2013-03-07T19:53:16.987 に答える