CoreData — обновление атрибутов без запроса данных или NSBatchUpdateRequest

Для изменения какого либо атрибута какой нибудь сущности мы обычно получаем ее из базы данных, изменяем атрибут и затем снова записываем, используя managedObjectContext.  Но представьте ситуацию, что вам надо изменить тысячу объектов в базе данных CoreData… Или десять тысяч…

Вышеупомянутый подход сработает и с миллионом записей в базе данных,  однако вы же понимаете, что он абсолютно не дружественнее к ресурсам системы, и времени, которое будет затрачено на выполнение обработки.

Начиная с  iOS 8,  Apple представила так называемые пакетные обновления (batch update) для базы данных CoreData.  Создавая экземпляр класса NSBatchUpdateRequest, мы указываем сущность, атрибут которой хотим обновить, и собственно сам атрибут с обновляемым значением.  Пример ниже:

Опубликовано в CoreData, Iron ribbon, Реальные примеры Метки: , ,

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*