Как на самом деле работает .DeleteSelf? Документы говорят:
Когда для действия объекта ссылки задано значение CKReferenceActionDeleteSelf, цель ссылки, то есть запись, хранящаяся в свойстве recordID ссылки, становится владельцем исходной записи. Удаление целевой записи (владельца) приводит к удалению всех ее исходных записей.
но у меня сложилось впечатление, что удаление цели не всегда приводит к удалению источника. И совсем напрягает, когда он остается в контейнере, клиент его скачивает и ожидает, что точка отсчета куда-то, а target не существует при наращивании слайса серверного хранилища данных на клиенте?
Как вы относитесь к этому случаю? Вы игнорируете такие записи? Или вы периодически просматриваете хранилище CloudKit в поисках поврежденных записей, чтобы удалить их?
Или вместо удаления записи лучше установить атрибут, что она в удаленном состоянии, но оставить в базе?