Iphone Core Data - фильтрация NSFetchedResultController?

115
13

Мне предоставили структуру, написанную другими программистами для доступа к основным данным.
В этой ситуации я получаю предварительно загруженный NSFetchedResultController, который мне нужно отфильтровать, чтобы отобразить часть его данных.


Вот что я пробовал:


NSPredicate *predicate = [NSPredicate predicateWithFormat:@"category==%@", @"current"];
[NSFetchedResultsController deleteCacheWithName:@"Root"];
[myResultController.fetchRequest setPredicate:predicate];
myResultController.fetchedObjects = [myResultController.fetchedObjects filteredArrayUsingPredicate:predicate];

И я получаю сообщение о том, что объект не может быть установлен, либо метод setter отсутствует, либо объект доступен только для чтения.


Итак, каков наилучший способ фильтрации NSFetchResultController, который уже загружен, без необходимости хранить отфильтрованные данные в другом массиве?

спросил(а) 2010-10-22T02:10:00+04:00 10 лет, 5 месяцев назад
1
Решение
107

fetchedObjects - только для чтения. Вы не можете настроить его вручную.


Что вам нужно сделать, так это выполнить новую выборку с помощью myResultController.

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"category==%@", @"current"];
[NSFetchedResultsController deleteCacheWithName:@"Root"];
[myResultController.fetchRequest setPredicate:predicate];
//myResultController.fetchedObjects = [myResultController.fetchedObjects filteredArrayUsingPredicate:predicate];
[myResultController performFetch:nil];

ответил(а) 2010-10-22T02:31:00+04:00 10 лет, 5 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема