CloudKit CKRecordZone
CloudKit CKRecordZone
我一直在摆弄 CloudKit 有一段时间了,但我找不到如何使用 CKRecordZone 的真实示例。我了解它们的功能(即,对记录进行分组,尤其是对于订阅),但是有人有实际使用过它们的经验,并映射出哪个概念吗?
谢谢
此外,当您想创建一个 CKSubscription 来监视指定记录区域(基于区域,而不是基于查询)中的所有记录时,它可能很有用。
CloudKit 记录区为您带来三大好处:
- 它允许您进行原子操作(将应用全部或 none 的更改)
- 它为您提供了同步功能,因此您可以从之前的时间点获取记录更改(使用更改令牌),而不是每次与服务器通信时都必须下载完整的记录列表。
- 这对于将属于一起的记录进行逻辑分组很有用。
Apple News 应用程序使用私有数据库中的两个区域存储用户信息:ReadingList 和 ReadingHistory。 ReadingList 存储已添加书签的新闻文章ID; ReadingHistory 存储已阅读的新闻文章 ID。通过将文章 ID 分成两个不同的区域,可以有效地同步它们。例如,如果一篇文章仅在一台设备上阅读(未添加书签),那么另一台设备会收到 ReadingHistory 区域已更改的通知,然后它只需同步该区域而不是同步这两个区域。有关详细信息,您可以阅读我关于新闻应用同步行为的完整文章 here。
我一直在摆弄 CloudKit 有一段时间了,但我找不到如何使用 CKRecordZone 的真实示例。我了解它们的功能(即,对记录进行分组,尤其是对于订阅),但是有人有实际使用过它们的经验,并映射出哪个概念吗?
谢谢
此外,当您想创建一个 CKSubscription 来监视指定记录区域(基于区域,而不是基于查询)中的所有记录时,它可能很有用。
CloudKit 记录区为您带来三大好处:
- 它允许您进行原子操作(将应用全部或 none 的更改)
- 它为您提供了同步功能,因此您可以从之前的时间点获取记录更改(使用更改令牌),而不是每次与服务器通信时都必须下载完整的记录列表。
- 这对于将属于一起的记录进行逻辑分组很有用。
Apple News 应用程序使用私有数据库中的两个区域存储用户信息:ReadingList 和 ReadingHistory。 ReadingList 存储已添加书签的新闻文章ID; ReadingHistory 存储已阅读的新闻文章 ID。通过将文章 ID 分成两个不同的区域,可以有效地同步它们。例如,如果一篇文章仅在一台设备上阅读(未添加书签),那么另一台设备会收到 ReadingHistory 区域已更改的通知,然后它只需同步该区域而不是同步这两个区域。有关详细信息,您可以阅读我关于新闻应用同步行为的完整文章 here。