あなたの質問とコメントから私はあなたが欲しいと思います
[NSPredicate predicateWithFormat:@"mode = 0 AND (ALL enrollments.mode = 0)"]
アップデート
ALL集計が機能していないようです。投げる
'NSInvalidArgumentException', reason: 'Unsupported predicate (null)'
@yunasが気づいたように。これは以前にも気づかれていました。
一方、ANY集計は問題なく機能します。したがって、回避策として、 ALLを同等のANY式に置き換えることができます。
[NSPredicate predicateWithFormat:@"mode = 0 AND NOT(ANY enrollments.mode != 0)"];
そして、これは実際に機能します(私はそれをテストしました)!
更新2
議論の中で、yunasはmode = 0のグループごとに1行のテーブルを表示し、テーブル行内にmode=0のそのグループのすべての登録を表示することを望んでいることが明らかになりました。
最初の解決策(おそらくより良いもの):最初に上記の方法ですべての許容可能なグループを見つけます。(の)行ごとcellForRowAtIndexPath:
に、そのグループの登録をフィルタリングし、セルを描画します。
2番目の解決策:すべての登録を取得し、グループで並べ替えます。これにはフェッチ要求が1つだけ必要ですが、結果はテーブルビューのデータソースほど適切ではありません。フェッチ要求は次のようになります。
NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Enrollment"];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"mode = 0 AND group.mode = 0"];
request.predicate = predicate;
NSSortDescriptor *sort1 = [NSSortDescriptor sortDescriptorWithKey:@"group.name" ascending:YES];
NSSortDescriptor *sort2 = [NSSortDescriptor sortDescriptorWithKey:@"share" ascending:YES];
request.sortDescriptors = [NSArray arrayWithObjects:sort1, sort2, nil];