Как отфильтровать NSFetchedResultsController, например «FilterArrayUsingPredicate» - PullRequest
1 голос
/ 07 февраля 2012

возможно ли отфильтровать результаты NSFetchedResultsController без нового вызова уровня базы данных, как я это делаю с NSArray с фильтром "FilterArrayUsingPredicate"

Спасибо

1 Ответ

1 голос
/ 07 февраля 2012

Вы можете установить предикат в NSFetchRequest, который вы используете для инициализации NSFetchedResultsController. Например:

- (NSFetchedResultsController *)fetchedResultsController {

    if (fetchedResultsController != nil) {
        return fetchedResultsController;
    }

    NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];

    fetchRequest.entity = <YOUR ENTITY>

    fetchRequest.predicate = [NSPredicate predicateWithFormat:<YOUR PREDICATE>];

    NSFetchedResultsController *aFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:moc sectionNameKeyPath:nil cacheName:nil];
    // ...

Вам не нужно «обновлять» выбранный контроллер результатов, поскольку он должен обновляться по мере внесения и сохранения изменений. Вам может понадобиться использовать стандартный код для использования и / или обновления табличного представления с контроллером полученных результатов.

...