【问题标题】:Difference between CloudKit and Key-Value StorageCloudKit 和键值存储的区别
【发布时间】:2015-12-09 18:10:31
【问题描述】:

iCloud的“键值存储”和CloudKit有什么区别?

一个示例场景是:如果要同步一个包含字典、数组和其他对象的相当大的数组。开发者想使用 CloudKit 还是 Key-value 存储?

【问题讨论】:

  • 对我来说一个关键的区别是WatchOS不支持Key-value存储,这个很少被提及。

标签: ios icloud cloudkit key-value-store


【解决方案1】:

CloudKit 用于同步真实数据记录以及资产(文件)。

iCloud 的键值存储是必不可少的NSUserDefaults,但可以跨设备同步。

所以这样想吧。如果它是一个简单的值,您可能会存储在 NSUserDefaults 中,请使用键值存储。如果它是您可能存储在 plist、数据库、文件或核心数据中的实际数据,请使用 CloudKit。

【讨论】:

  • 可以同步的NSUserDefaults的大小有限制吗?
  • 可能,但NSUserDefaults 只应该用于微小的信息,例如一些字符串、数字或布尔值。它不应该用于任何“数据”,只是偏好类型信息。
【解决方案2】:

我只是认为根据iCloud Design Guide 提及这一点可能会有所帮助:

应用只能在其键值存储中存储 1 MB 的数据

因此,在决定 CloudKit 还是 iCloud 键值存储时,可能需要考虑这一点。

就我而言,对于我目前正在处理的应用程序,这个限制完全没问题。但是,我想在更大的项目中,1 MB 的限制可能不够。有助于在做出决定时提前了解这一点!

希望这会有所帮助!

【讨论】:

    【解决方案3】:

    值得注意的是,iCloud Key-Value storage 的限制比每个用户 1MB 的限制更多(在之前的其他答案中提到)。

    您可以存储的数据大小有一些限制:

    • 最大的整体键值存储大小为 1 MB(每个用户)
    • 一个键值对不能大于 1 MB
    • 您不能存储超过 1024 个键值对
    • 使用 UTF-8 编码的密钥不能大于 64 字节

    【讨论】:

    • 而且WatchOS不支持,很少提及。
    猜你喜欢
    • 1970-01-01
    • 2017-10-01
    • 2018-12-24
    • 2014-09-24
    • 2014-09-18
    • 1970-01-01
    • 2011-12-25
    • 2015-04-11
    • 1970-01-01
    相关资源
    最近更新 更多