NSFetchedResultsController によって制御されるテーブルビューの各セクションの制限を設定するにはどうすればよいでしょうか? 例: それぞれ開始日があり、異なるステージでプレイするショーがたくさんあります。それぞれのステージで次は誰なのかだけ見せたい。したがって、リクエスト全体を制限する必要はありませんが、各セクションを制限する必要があります。
NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Event"];
NSMutableArray *predicates = [NSMutableArray array];
[predicates addObject:[NSPredicate predicateWithFormat:@"startDate > %@", [NSDate date]]];
request.predicate = [NSCompoundPredicate andPredicateWithSubpredicates:predicates];
NSSortDescriptor *stageSort = [[NSSortDescriptor alloc] initWithKey:@"stage.id" ascending:YES];
NSSortDescriptor *dateSort = [[NSSortDescriptor alloc] initWithKey:@"startDate" ascending:YES];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:stageSort, dateSort, nil];
[request setSortDescriptors:sortDescriptors];
self.fetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:request
managedObjectContext:self.managedObjectContext
sectionNameKeyPath:@"stage.id"
cacheName:nil];
テーブルビューデリゲートメソッドでそれを制限すると、この種の機能が機能しますが、フェッチが変更されてテーブルを更新しようとするとクラッシュすることがよくあります。NSFetchedResultsController には、表示されているよりも多くのオブジェクトがあり、これらを変更するアニメーションが壊れているためだと思います。
セクションごとにより効果的な制限を設定するにはどうすればよいですか? セクションごとに最初の結果のみが必要です。