Ответ 1
В двух словах, processPendingChanges
изменяет состояние текущего графа объектов. save
сохранит текущий граф объекта на диск.
Вызов save
автоматически вызовет processPendingChanges
.
Если вы думаете о текстовом файле в текстовом процессоре, save
аналогичен сохранению документа на диске.
processPendingChanges
аналогичен тому, как текстовый процессор обновляет внутреннее состояние документа после редактирования, но без сохранения на диск. Обычно это запускает обновления для пользовательского интерфейса, такие как обновление отображаемого слова или количества строк, выполнение любого необходимого форматирования и т.д.
По моему опыту, для iPhone вам редко нужно processPendingChanges.
Я считаю, что он в основном предназначен для Mac OS X и обрабатывает расширенное или сложное управление отменой или обновление привязок интерфейса.
Для iPhone это обычно делается для запуска NSFetchedResultsControllers для обновления представлений таблиц. Даже тогда это несколько редок. Если вы не уверены, что просто придерживайтесь save
Для получения дополнительной информации перейдите к изучению разницы между NSManagedObjectContextDidSaveNotification
и NSManagedObjectContextObjectsDidChangeNotification
в документах.