Протокол слияния iCloud основных данных

Мне удалось заставить мое существующее приложение для работы с основными данными работать с iCloud. После нескольких дней изучения это оказалось на самом деле на удивление просто.Кажется, что важны 3 вещи:

  • для добавления файла прав (в недавнем Xcode это можно сделать, выбрав цель, выбрав «Панель сводки», прокрутите вниз, отметьте включение прав »

  • , чтобы добавить правильные параметры при добавлении постоянного хранилища, в моем случае

     NSDictionary * options = [NSDictionary dictionaryWithObjectsAndKeys:
     // другие варианты
     @ "<произвольное имя>", NSPersistentStoreUbiquitousContentNameKey,
    iCloudURL, NSPersistentStoreUbiquitousContentURLKey,
    ноль]
    

    где

     NSURL * iCloudURL = [[NSFileManager defaultManager] URLForUbiquityContainerIdentifier: nil];
    

Здесь `nil 'указывает, что используется информация из файла Entitlements.plist.

  • включение поддержки iCloud для приложения через портал разработчика. Это может включать создание уникального идентификатора приложения, чего я раньше не делал.

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

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

Одним из способов синхронизации данных с устройства A на B является удаление существующей базы данных основных данных на B, а затем перезапуск приложения на B. Однако это неправильное слияние.

Кто-нибудь знает способ объединить две существующие базы данных основных данных в разных приложениях на момент обновления приложений для использования поддержки iCloud, то есть использовать указанные выше параметры и все такое?

Спасибо

20
задан MPelletier 17 January 2012 в 15:33
поделиться