CloudKit: CKQueryOperation для удаленных записей

Есть ли способ запросить CloudKit для недавно удаленных элементов (возможно, из определенной временной отметки), не используя CKFetchRecordChangesOperation? Я использую общедоступную базу данных, поэтому я не могу использовать пользовательские зоны (что было бы требованием для CKFetchRecordChangesOperation) ... так что мне нужен способ смоделировать это с публичными базами данных.

Я хочу иметь возможность эффективно обновлять мой локальный кэш базовых данных для внесения изменений в записи CloudKit. Когда вы запрашиваете записи CloudKit, CKRecord, кажется, имеет creationDate а также modificationDate свойство, к которому можно обратиться, чтобы увидеть недавно созданные / измененные записи, но оно не будет работать для записей, которые были удалены в CloudKit.

Какова будет эффективная стратегия здесь?

2 ответа

Одним из решений, о котором я подумал, является поддержание свойства "deleDate" в CKRecord,

Это не обязательно

Вы хотите CKFetchRecordZoneChangesOperation

Посмотрите видео WWDC здесь: https://developer.apple.com/videos/play/wwdc2014/231/

https://developer.apple.com/icloud/

Одним из решений, о котором я подумал, является поддержание свойства "deleDate" в CKRecord, поэтому, когда данные "удаляются", вы фактически не удаляете запись из CloudKit, а просто обновляете это свойство. Это позволит другим устройствам запрашивать записи, которые были недавно удалены, поэтому вы можете обновить локальный кеш. Вы также можете периодически проверять записи, которые были удалены с помощью DateDate более чем на 1 неделю или что-то в этом роде, и фактически удалять записи в этот момент (хотя вы должны следить за тем, чтобы несколько устройств удаляли записи одновременно, и другие пограничные случаи). Не самое элегантное решение, но может сработать. Если есть лучший вариант, хотел бы услышать это.

Другие вопросы по тегам