1

对于 iOS 应用程序,我正在研究如何通过 iCloud 同步用户数据。由于数据很小,我目前考虑使用 iCloud 的键值存储(NSUbiquitousKeyValueStore)。

我有几个关于内部工作的问题NSUbiquitousKeyValueStore,我在文档中找不到答案:

  • 在更改 ( NSUbiquitousKeyValueStoreDidChangeExternallyNotification) 之后,我可以假设所有键值对都是最新的吗?还是可能密钥 A 是最新的,但密钥 B 尚未更新?
  • 如果我在商店中更新NSArray或更新NSDictionary,是在同步期间上传和下载了整个内容,还是 iCloud 以某种方式仅同步数组/字典中的更改值?
  • 更改值的大小(例如更改NSNumber几个字节与更改NSArray50KB)是否会影响 iOS 选择执行同步的时刻?

希望有经验的NSUbiquitousKeyValueStore人能回答这些问题!

4

1 回答 1

1
  • 更改后(NSUbiquitousKeyValueStoreDidChangeExternallyNotification),我可以假设所有键值对都是最新的吗?还是可能密钥 A 是最新的,但密钥 B 尚未更新?

不知道你在这里要求什么。当您收到此通知时,存储已包含它从云下载的新值。

  • 如果我在商店中更新 NSArray 或 NSDictionary,是在同步期间上传和下载了整个内容,还是 iCloud 以某种方式仅同步数组/字典中的更改值?

整个值被上传/下载。

  • 更改值的大小(例如更改为几个字节的 NSNumber 与更改为 50KB 的 NSArray)是否会影响 iOS 选择执行同步的时刻?

不会。您的更新频率本质上会影响 iOS 选择推送您的更改的那一刻。简而言之,如果你经常这样做,它可能会延迟同步。

于 2013-07-21T17:09:20.583 回答