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