Мне удалось заставить мое существующее приложение с основными данными работать с iCloud.После нескольких дней учебы все стало на удивление просто.Кажется, что необходимы 3 вещи:
, чтобы добавить файл разрешений (в недавнем XCode это можно сделать, выбрав цель, выберите «Область сводок», прокрутите вниз, проверьтевключить разрешения "
, чтобы добавить правильные параметры при добавлении постоянного хранилища, в моем случае
NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:
// other options
@"<arbitrary name>", NSPersistentStoreUbiquitousContentNameKey,
iCloudURL, NSPersistentStoreUbiquitousContentURLKey,
nil]
, где
NSURL * iCloudURL = [[NSFileManager defaultManager] URLForUbiquityContainerIdentifier:nil];
Здесь `nil 'указывает, что используется информация из файла Entitlements.plist.
- включение поддержки iCloud для приложения через портал разработчика. Это может включать создание уникального идентификатора приложениячто-то, чего я раньше не делал.
На самом деле, на данный момент я не уверен, что этот последний шаг важен для разработки - я включил другое приложение без этого последнего шага, и кажется,на работу.
Во всяком случае, я заметил, что две существующие базы данных ядра одного и того же приложения на разных устройствах iDevices будут синхронизировать новые записи в стеке данных ядра, но не будут автоматически синхронизировать существующие данные.ecords.
Один из способов синхронизации данных с устройства A на B - удалить существующую базу данных основных данных на B, а затем перезапустить приложение на B. Однако это не является правильным слиянием.
Кто-нибудь знает способ объединения двух существующих баз данных основных данных в разных приложениях в момент обновления приложений для использования поддержки iCloud, т. Е. Использования указанных выше параметров и всего такого?
Спасибо