2014-11-11 2 views
0

Я хочу добавить синхронизацию iCloud в приложение на основе CoreData и сделать его опцией, а не единственным состоянием. Из того, что я вижу, в прошивке 7+ добавление ICloud сводится к добавлению словаряiOS Core Data iCloud sync - сделать необязательным

@{NSPersistentStoreUbiquitousContentNameKey: @"MyCloudStore"} 

Варианты для addPersistentStoreWithType:... вызова и ответа на NSPersistentStoreDidImportUbiquitousContentChangesNotification пути объединения входящих данных.

Означает ли это, что для включения/отключения синхронизации iCloud в приложении мне просто нужно добавить хранилище в persistentStoreCoordinator с соответствующими параметрами и добавить/удалить наблюдателя NSPersistentStoreDidImportUbiquitousContentChangesNotification? Будут ли какие-либо проблемы с использованием одного и того же локального файла SQLite?

ответ

1

Нет, этого недостаточно, вам также нужно реагировать на NSPersistentStoreCoordinatorStoresWillChangeNotification и NSPersistentStoreCoordinatorStoresDidChangeNotification.

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

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

Существует очень хорошая документация от apple https://developer.apple.com/library/ios/documentation/DataManagement/Conceptual/UsingCoreDataWithiCloudPG/Introduction/Introduction.html#//apple_ref/doc/uid/TP40013491-CH1-SW1, которая дает хорошее описание, что нужно учитывать.

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