如何将 SwiftData 与 iCloud 同步

温馨提示:本文最后更新于2025-01-20 15:38:57,某些文章具有时效性,若有错误或已失效,请在下方留言

Xcode配置

如果要将应用程序的数据同步到 iCloud,请转到应用程序TargetSigning & Capabilities 设置

图片[1]-如何将 SwiftData 与 iCloud 同步-Stewed Noodles 资源

添加 iCloud 功能

点击 + Capability 按钮,选择 iCloud 功能

图片[2]-如何将 SwiftData 与 iCloud 同步-Stewed Noodles 资源

选择 CloudKit

iCloud 的选项中,选择 CloudKit 功能

图片[3]-如何将 SwiftData 与 iCloud 同步-Stewed Noodles 资源

添加 CloudKit 容器

点击 Containers 下方的+号按钮创建新的容器或选择现有的容器。

图片[4]-如何将 SwiftData 与 iCloud 同步-Stewed Noodles 资源

添加 Background Modes

点击 + Capability 按钮,选择 Background Modes

图片[5]-如何将 SwiftData 与 iCloud 同步-Stewed Noodles 资源

选择远程通知

在Background Modes的选项中,选择 Remote Notifications 复选框

图片[6]-如何将 SwiftData 与 iCloud 同步-Stewed Noodles 资源

应用程序现在已配置为将其所有数据与 iCloud 同步。

SwiftData 模型修改

可能需要对 SwiftData 模型进行一些更改,因为 CloudKit 有一些非常具体的要求。如果您不遵循这些要求,您的 iCloud 同步将会默默失败

  • 不能在要同步到 CloudKit 的任何属性上使用@Attribute(.unique)
  • 所有属性都必须具有默认值或与它们的初始值设定项一起标记为可选。
  • 所有关系都必须标记为可选。这是特别烦人™,但这是一项要求,所以我们无能为力。

只要您对所有模型进行这些更改,它们就会自动同步到 CloudKit。如果您的用户稍后从设备中删除您的应用程序然后重新安装,SwiftData 将自动从 iCloud 获取旧数据并在本地同步。

使用 CloudKit 时,您可能会发现 Apple 的 CloudKit 仪表板是查看 CloudKit 如何存储数据的有用资源。您可以在这里找到它https://icloud.developer.apple.com/dashboard

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容