1.1 CloudKit
CloudKit 是 iCloud 的 SDK,允许苹果 App 将数据存储于 iCloud 中。从而实现所有苹果设备的数据自动同步问题。
CloudKit 有两部分组成:
- 一个网络仪表板用于管理记录类型和任何公共数据。
- 一组 API,用于在 iCloud 和设备之间传输数据。
概念
- 容器:App 使用容器来存储数据
- 单个 App 通常使用单容器
- 单个 App 支持多容器
- 多个 App 也可以使用单容器
- 数据库:容器中可以存储不同类型数据
- ACL:公有、私有、共享数据库
- 每个容器一个公有数据库,App 所有用户可访问
- App 用户可以访问自己的私有数据库
- 通过共享数据库,App 用户可与其它用户共享数据
- ACL:公有、私有、共享数据库
- 区域:分割数据记录的逻辑空间
- 公共数据库只有一个区域,称为默认区域
- 每个私有数据库都有一个默认区域
- 私有数据库还允许分为多个自定义区域
- 共享数据库没有默认区域
- 场景:私有数据库中有不同类型数据,且更新频率不同,按区域同步,节省流量
- 环境:开发环境、生产环境
- 开发环境:沙盒环境
- Promotion”(提升):开发环境迁移到生产环境
- 无法删除实体类型
- 以在实体中添加字段,但无法修改或移除字段
- 上架 App 只能访问生产环境
- 连通性:高度一致的存储功能
- 将 App 的数据储存在 CloudKit 容器中,以便用户在多台设备上进行访问。
- CloudKit Console:网页控制面板
- Data (数据):访问直接存储在 CloudKit 数据库中的数据。
- Schema (架构):查看、编辑和提升你的 CloudKit 数据库架构。
- Telemetry (遥测):查看一系列图表,用于衡量你的 App 在用户所有设备上的总体综合性能、可靠性和使用情况。
- Logs (日志):通过全面且最新的服务器日志数据来分析和评估 App 性能,同时保持用户隐私。
- Notifications (通知):掌握容器的变化情况并配置自定义警报,以监控 App 与 CloudKit 的互动。
适用场景
使用 iCloud 存储应用的数据,并使这些数据在互联网上以及每个人拥有的每台设备上可用。
适合场景:
- 个人的多设备间同步文档和图片等文件
- iCloud 会管理这些文件的持久性和同步
- 系统备份 App 的数据快照,用于系统恢复
- 备份 App 创建的文件
- 不需要备份的文件,App 应当告诉系统
- 个人的多设备间同步键值对
- 使用 iCloud 键值存储,应用可以存储最多 1024 个字符串键
- iCloud 自动保持这些键值对的同步
- 类型:键值存储仅支持数值类型,以及
Bool
、String
、Date
、Data
、Array
和Dictionary
- 适用 CloudKit 存储对象模型
- NSPersistentCloudKitContainer:提供了一个完全管理的模式,保持了本地数据的副本
- 不需对数据同步的时间和方式进行精细控制
- CKSyncEngine:引擎会自动安排同步操作以获取并发送数据的更改
- CKDatabase, CKOperation:对您存储的数据以及容器模式的设计和管理的完全控制。
- 最为复杂,需要您手动获取和发送记录,解决任何冲突,安排操作,处理 iCloud 账户更改,处理更改通知,持久化服务器更改令牌等。
- NSPersistentCloudKitContainer:提供了一个完全管理的模式,保持了本地数据的副本
本文作者:Maeiee
本文链接:1.1 CloudKit
版权声明:如无特别声明,本文即为原创文章,版权归 Maeiee 所有,未经允许不得转载!
喜欢我文章的朋友请随缘打赏,鼓励我创作更多更好的作品!