云套件CKRecordZone

8

我已经研究了一段时间的CloudKit,但是我找不到一个真实的例子来使用CKRecordZone。我理解它们的功能(即为订阅而特别分组记录),但是否有人有使用它们的真实经验,并能映射哪些概念?

谢谢。


2
创建自己的区域仅在私有数据库中受支持。唯一的附加用途似乎是您可以将多个记录作为一个原子事务编写。它的缺点是您无法引用该区域外的记录。那么...有人知道想到一个好的例子何时使用它吗? - Edwin Vermeer
我认为你可以使用CKModifyRecordOperation写入多个记录,而无需使用区域。 - Frederic Adda
1
正确,但文档似乎表明只有在使用区域时才是原子的。 - Edwin Vermeer
3个回答

7
苹果新闻应用程序使用私有数据库中的两个区域来存储用户信息:ReadingList和ReadingHistory。ReadingList存储已被加书签的新闻文章ID;ReadingHistory存储已阅读的新闻文章ID。通过将文章ID分成两个不同的区域,可以有效地同步它们。例如,如果一篇文章只在一个设备上阅读(而没有加书签),则另一个设备会收到ReadingHistory区域已更改的通知,然后只需同步该区域而不是两个区域。欲了解更多信息,请阅读我关于新闻应用程序同步行为的完整说明此处

6

CloudKit记录区域提供了三个主要优势:

  1. 它允许您进行原子操作(所有更改将全部应用或全部不应用)
  2. 它提供了同步功能,因此您可以使用更改标记从先前时间点获取记录更改,而不是每次与服务器交谈时都必须下载完整的记录列表。
  3. 它对于逻辑上分组属于一起的记录非常有用。

2
您能举个例子说明逻辑上分组记录会有什么用处吗? - Prasanna

5

此外,当您想创建一个监视指定记录区域中所有记录(基于区域而不是基于查询)的CKSubscription时,它可能会很有用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接