Удалить объект из NSPersistentCloudKitContainerIOS

Программируем под IOS
Ответить
Anonymous
 Удалить объект из NSPersistentCloudKitContainer

Сообщение Anonymous »

Я использую NSPersistentCloudKitContainer и добавил объект (в частную базу данных) в базовую модель данных. Теперь я понял, что эта сущность мне больше не нужна, и я хочу избавиться от нее из своего кода.
Но, похоже, это не так просто, как удалить ее из базовой модели данных и всего ссылающегося кода. Согласно этому видео с WWDC 2022 (https://developer.apple.com/videos/play/wwdc2022/10120/) к сущностям можно добавлять только новые сущности и новые атрибуты. Никакие другие операции не допускаются.
Как люди обычно справляются с этим случаем при использовании NSPersistentCloudKitContainer ? Я попытался удалить объект из базовой модели данных и получил несколько предупреждений в журнале о том, что он больше не может найти объект (понятно) и что постоянное отслеживание истории для этих транзакций прекратилось. В следующий раз, когда я снова запустил приложение, я не получил никаких предупреждений. Мне это показалось нормальным, но я спросил ChatGPT и не рекомендовал его удалять:
Конкретные сценарии

Сценарий 1: другое устройство (даже несколько месяцев спустя)

  • Пользователь устанавливает приложение на новое устройство
  • CloudKit отправляет все известные ему типы записей
  • Включая сущность
  • Основные данные не могут сопоставить их
  • Ошибки синхронизации, удаление записей или зависание зеркалирования

Сценарий 2: возвращается старая версия приложения

  • Пользователь открывает старую сборку из кэша TestFlight/App Store
  • Эта версия по-прежнему создает Entity
  • Загружает записи в CloudKit
  • Новая версия не может их декодировать

Сценарий 3: Пограничные случаи фоновой синхронизации

  • CloudKit доставляет изменения вне порядка
  • Удаления происходят после вставок
  • Core Data видит тип записи, который он больше не понимает
  • Появляются ошибки зеркального делегирования позже, а не сразу
Эти сбои часто проявляются:
  • Дни или недели спустя
  • На другом устройстве
  • Только у некоторых пользователей
  • Как «случайный CloudKit» проблемы»
Вот почему Apple так строга в WWDC.

Подробнее здесь: https://stackoverflow.com/questions/798 ... tcontainer
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»