Ответ 1
Возможно, это помогает: https://gist.github.com/1475162 (@steipete)
Мне удалось заставить мое существующее приложение для работы с данными работать с iCloud. После нескольких дней учебы это было на самом деле удивительно просто. Кажется, что важно 3 вещи:
чтобы добавить файл прав (в последнем Xcode это можно сделать с помощью выбора цели, выбрать "Сводная панель", прокрутить вниз, проверить права доступа "
чтобы добавить правильные параметры при добавлении хранилища persisten, в моем случае
NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:
// other options
@"<arbitrary name>", NSPersistentStoreUbiquitousContentNameKey,
iCloudURL, NSPersistentStoreUbiquitousContentURLKey,
nil]
где
NSURL * iCloudURL = [[NSFileManager defaultManager] URLForUbiquityContainerIdentifier:nil];
"nil" здесь указывает, что используется информация из файла Entitlements.plist.
На самом деле, на данный момент я не уверен, что этот последний шаг имеет решающее значение для разработки. Я включил другое приложение без этого последнего шага и, похоже, работает.
Во всяком случае, я заметил, что две существующие базовые базы данных одного и того же приложения на разных iDevices будут синхронизировать новые записи с базовым стеком данных, но не будут автоматически синхронизировать существующие записи.
Одним из способов синхронизации данных с устройства A на B является удаление существующей базы данных основных данных на B, а затем перезапуск приложения на B. Однако это не является правильным слиянием.
Кто-нибудь знает способ слияния двух существующих базовых баз данных данных в разных приложениях в момент обновления приложений для поддержки iCloud, т.е. использовать параметры выше и все такое?
Спасибо
Возможно, это помогает: https://gist.github.com/1475162 (@steipete)
Я этого не делал, но при сохранении в iCloud существует высокий риск возникновения противоречивой информации, если данные также были обновлены или существуют на другом устройстве. Если конфликты не решены должным образом, поток между двумя устройствами не будет происходить должным образом. Разрешение конфликтов может быть сложным, но самым простым было бы просто дать самую последнюю победу. У Apple есть процедуры обработки конфликтов, которые запускаются при сохранении, чтобы перезаписать в вездесущий магазин, идентифицирует конфликт.