Как получить проект по умолчанию с NSPersistentCloudKitContainer и запустить? - PullRequest
3 голосов
/ 14 июня 2019

Я выполнил те же действия, что и в «Использование базовых данных с CloudKit»:

  1. Новый проект
  2. Включить Core Data + Cloud Kit
  3. Добавить право iCloud / CloudKit + Фоновый режим / право удаленных уведомлений.
  4. В симуляторе iPhone Xr я вошел в учетную запись iCloud, которую создал (а затем подтвердил на icloud.com!), И запустил приложение, создав несколько записей.
  5. Затем я вошел в ту же учетную запись iCloud в симуляторе iPhone Xs. Я запустил приложение, но записи не были объединены. Создание записей в этом симуляторе также не сливается с симулятором Xr.

Что мне не хватает?

1 Ответ

3 голосов
/ 15 июня 2019

Чтобы увидеть изменения в симуляторах, вам нужно выйти из приложения и перезагрузить его (или собрать и запустить).

Имитаторам никогда не удавалось получать удаленные уведомления для запуска синхронизации 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 в фоновом режиме.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...