Это не SQL-запрос, это выборка.Запрос - это концепция, специфичная для SQL, а выборка - это концепция базовых данных, которая работает с любым типом хранилища базовых данных.
Вы можете изменить значение fetchRequest
NSFetchedResultsController, но это несколько усложняет. Из документов:
Изменение запроса на выборку
Вы не можете просто изменить запрос на выборку, чтобы изменить результаты.Если вы хотите изменить запрос на выборку, вы должны:
(1) Если вы используете кеш, удалите его (используя deleteCacheWithName:).
Обычно вы не должны использовать кеш, есливы меняете запрос на выборку.
(2) Измените запрос на выборку.
(3) Вызвать executeFetch:.
Это кеш, который вызывает проблемы с изменением запроса на выборку.
Вы также можете изменить предикат объекта NSFetchRequest, но если вы используете это извлечение с контроллером извлеченных результатов, вы должны выполнить вышеуказанные шаги.
Проблемы возникают, когда кэшированные объекты не совпадают с набором, возвращаемым новым запросом выборки.Часто проще и чище просто создать новый объект запроса выборки или новый объект контроллера полученных результатов.
Вы должны заморозить табличное представление с помощью beginUpdate
, пока все это происходит, иначе строки и разделы табличного представления будут не синхронизированы с данными, вызывающими сбой.