Чтобы увидеть изменения в симуляторах, вам нужно выйти из приложения и перезагрузить его (или собрать и запустить).
Имитаторам никогда не удавалось получать удаленные уведомления для запуска синхронизации iCloud, поэтому вам нужно вручную запустить синхронизацию, но я обнаружил, что синхронизацию нельзя запустить вручную из меню в моей бета-версии Xcode 11 (выдает ошибку) ,
Есть хороший пост Эндрю Бэнкрофта о некоторых других вещах, таких как установка свойства automaticMergesChangesFromParent в значение true, но это не имеет значения при использовании симуляторов (РЕДАКТИРОВАТЬ: да, но я не сделал не понимаю, так как я просто строил и работал каждый раз).
Andrew's Post: https://www.andrewcbancroft.com/blog/ios-development/data-persistence/getting-started-with-nspersistentcloudkitcontainer/#where-s-my-data
Я нахожусь в одной лодке, так как не могу позволить себе устанавливать какое-либо бета-программное обеспечение (кроме XCode), поэтому мне придется придерживаться симуляторов. Но мой опыт преобразования существующего приложения в CloudKit был очень, очень позитивным. Мне просто нужно было сделать три вещи с моим существующим проектом:
- Добавление возможностей фонового уведомления и CloudKit
- Убедитесь, что все атрибуты и данные базовых данных являются необязательными (или имеют значение по умолчанию, если ноль)
- Переименование NSPersistentContainer в NSPersistent CloudKit Контейнер
... и все! Унесенные разумом.
Все мои вложенные отношения «многие ко многим», кажется, работают идеально.
Мне все еще нужно разобраться, как синхронизировать изображения, которые в настоящее время хранятся в виде JPG, в пользовательском каталоге Documents, но я подозреваю, что их нужно будет хранить в Core Data как BLOB, чтобы разрешить преобразование в наборы CKA в фоновом режиме.