用途:本技能是 iCloud Drive 基于文件的云同步参考,用于实现文档型 iCloud 同步、跨设备同步用户文件、构建文档类应用(如 Pages、Numbers)、跨进程协调文件访问、处理 iCloud 文件冲突,以及用 NSUbiquitousKeyValueStore 同步偏好设置。它面向文件同步,不适用于需要可查询结构化数据或记录间关系的场景(应改用 CloudKit)。
主要能力:获取 ubiquitous container URL(FileManager.default.url(forUbiquityContainerIdentifier:));读写、移动 iCloud 文件;通过 NSFileCoordinator 协调读写与移动,避免竞态、数据损坏和更新丢失;用 URL 资源值检查 isUbiquitousItem、下载状态、上传状态与未解决冲突;用 startDownloadingUbiquitousItem(at:) 请求下载,并用 NSMetadataQuery 监控进度;用 NSFileVersion 检测与解决冲突;用 NSUbiquitousKeyValueStore 同步小型偏好。
使用方式:需配置 iCloud 能力与 ubiquity container 标识等 entitlements;访问 iCloud 文件时始终使用 NSFileCoordinator;下载为异步,需配合 NSMetadataQuery 监控;冲突可保留当前版本、选择其他版本或手动合并后标记已解决。
限制:NSUbiquitousKeyValueStore 总存储 1 MB、最多 1024 个键、单值最大 1 MB,仅用于偏好而非数据;iCloud Drive 用于文件而非结构化数据。最低系统版本:iOS 5.0(基础)、8.0(iCloud Drive)、11.0(现代 API)。