CloudKit CKRecordZone
В течение некоторого времени я возился с CloudKit, но не могу найти реальный пример того, как использовать CKRecordZone. Я понимаю их возможности (а именно, группирование записей, особенно для подписок), но есть ли у кого-то реальный опыт их использования и определения какой концепции?
Спасибо
3 ответа
Зоны записи CloudKit дают вам три основных преимущества:
- Это позволяет вам выполнять атомарные операции (будут применены все или ни одно из изменений)
- Он предоставляет вам возможности синхронизации, так что вы можете получать изменения записей с предыдущего момента времени (с токеном изменений), а не загружать полный список записей каждый раз, когда вы общаетесь с сервером.
- Это полезно для логической группировки записей, которые принадлежат друг другу.
Приложение Apple News использует две зоны в частной базе данных для информации пользователя: ReadingList и ReadingHistory. В ReadingList хранятся идентификаторы новостных статей, которые были добавлены в закладки; В ReadingHistory хранятся идентификаторы новостных статей, которые были прочитаны. Разделяя идентификаторы статей на две разные зоны, это позволяет им эффективно синхронизироваться. Например, если статья читается только на устройстве (а не в закладках), то другое устройство получает уведомление об изменении зоны ReadingHistory, а затем синхронизирует только эту зону, а не обе. Для получения дополнительной информации, вы можете прочитать мою полную запись о поведении синхронизации приложения новостей здесь.
Кроме того, это может быть полезно, когда вы хотите создать подписку CKSub, которая контролирует все записи в указанной зоне записи (на основе зоны, а не на основе запроса).