CloudKit 和 Key-Value 存储的区别

Difference between CloudKit and Key-Value Storage

iCloud 的 "Key-value storage" 和 CloudKit 有什么区别?

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

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

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

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

我只是认为根据 iCloud Design Guide:

提及这一点可能会有所帮助

Apps may store only 1 MB of data in their key-value storage

所以这可能是人们在 CloudKit 和 iCloud 键值存储之间做出决定时想要考虑的因素。

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

希望对您有所帮助!

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

There are some limits to the size of data you can store:

  • A maximum, overall key-value store size of 1 MB (per user)
  • One key-value pair can’t be larger than 1 MB
  • You can’t store more than 1024 key-value pairs
  • A key can’t be larger than 64 bytes using UTF-8 encoding