2013-11-18 2 views
0

У меня проблема. Я пишу приложение, использующее основные данные и синхронизирующее его через iCloud. Должен ли я обновлять данные в контексте после получения изменений. Могу ли я отказаться от полученных изменений?Должен ли я обновлять данные вручную после NSPersistentStoreDidImportUbiquitousContentChangesNotification

ответ

2

Когда вы получаете NSPersistentStoreDidImportUbiquitousContentChangesNotification, входящие изменения уже получены и сохранены в вашем постоянном файле хранилища. То, что вы делаете дальше, зависит от вас.

Если мне нужно обновить данные в контексте после изменения

Если вы хотите, чтобы пользователи видели новые изменения, то да. Вы можете сделать это с помощью mergeChangesFromContextDidSaveNotification:.

Могу ли я отказаться от полученных изменений?

Когда вы получаете уведомление, изменения уже получены и сохранены. Вы можете сохранить разные значения, если хотите. Вы не можете сказать iCloud, следует ли совершать изменения, хотя они уже есть.

+0

Том прав, у меня создалось впечатление, что вы можете перебирать объекты, указанные в уведомлении, и удалять (или изменять) их до вызова mergeChanges. Например, если есть дубликаты, вы можете удалить их до слияния, чтобы дубликаты никогда не отображались в пользовательском интерфейсе. –

0

Что говорит Том, это правда. Изменения уже импортированы в файл постоянного хранилища, но они не объединены в фактический PersistentContext, это то, что делает mergeChangesFromContextDidSaveNotification.

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