2015-04-25 1 views
5

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

Благодаря

+2

И создание собственной зоны поддерживается только в частной базе данных. Единственное дополнительное использование, похоже, состоит в том, что вы можете писать несколько записей как одну атомную транзакцию. Недостаток заключается в том, что вы не можете ссылаться на записи за пределами этой зоны. Итак ... Кто-нибудь знает, чтобы подумать о хорошем примере, когда использовать это? –

+0

Я думаю, что вы можете писать несколько записей с помощью CKModifyRecordOperation без использования зон. –

+1

Правда, но документация, похоже, предполагает, что они только атомарны, когда вы используете зону. –

ответ

5

CloudKit запись зона дает вам три основных преимущество:

  1. Это позволяет делать атомарные операции (либо все, либо не получит применяются ни одно из изменений)
  2. Это дает вам возможность синхронизации, так что вы можете извлекать изменения записи из предыдущего момента времени (с токеном изменения), а не загружать полный список записей каждый раз, когда вы разговариваете с сервером.
  3. Это полезно для логической группировки записей, которые принадлежат друг другу.
+1

Не могли бы вы привести пример того, когда было бы полезно логически группировать записи, подобные этому? – Prasanna

5

Кроме того, это может быть полезно, если вы хотите создать CKSubscription, который отслеживает все записи в определенной записи зоны (зона на базе, а не на основе запросов).

4

Приложение Apple News использует две зоны в частной базе данных для информации пользователя: ReadingList и ReadingHistory. ReadList сохраняет идентификаторы новостей новостей, которые были отмечены закладкой; ReadingHistory хранит новостные идентификаторы статей, которые были прочитаны. Разделяя идентификаторы статей на две разные зоны, они позволяют эффективно синхронизировать их. Например, если статья читается только на устройстве (и не помечена закладкой), то другое устройство получает уведомление о том, что зона ReadingHistory изменилась, тогда ему нужно только синхронизировать эту зону, а не обе. Для получения дополнительной информации вы можете прочитать мою полную запись о поведении синхронизации приложения News here.