iOS
CloudKit

CKRecordZoneのCustomZoneはなぜあるの?

スクリーンショット 2017-09-25 14.30.57.png
利用画像はWWDC2016のWhat's new in CloudKitのスライドからキャプチャしたものを利用

動機

アプリケーションごとのコンテナ → わかる。
用途別のデータベース → わかる。
レコード → わかる。
レコードをまとめるレコードゾーン → ?????

Apple Documentより

ゾーンは、データをどのように整理するかの重要な部分です。Public、PrivateおよびSharedのデータベースには、単一のDefaultゾーンがあります。Privateデータベースでは、CKRecordZoneオブジェクトを使用して、必要に応じて追加のカスタムゾーンを作成できます。カスタムゾーンを使用して、関連するレコードのグループをPrivateデータベースに配置してカプセル化します。カスタムゾーンは、複数のレコードを1つのアトミックトランザクションとして書き込む機能など、他の機能もサポートしています。

Customゾーンが必要な理由まとめ

  • CKRecordZoneでは複数のRecordをまとめて一つの単位として扱える。
  • Privateデータベースでは、Customゾーンを作成することによりRecordZone内のRecordに対して、バッチ処理を行える便利な機能がサポートされている。
  • RecordZoneへの変更購読機能が、Customゾーンしか使えない。