0

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

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

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

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

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

ответ

5

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

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

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

спасибо, что я попробую – aryaxt

Смежные вопросы