NSUbiquitousKeyValueStore的内部同步如何工作?

时间:2013-07-20 17:09:22

标签: ios icloud icloud-api nsubiquitouskeyvaluestore

对于iOS应用程序,我正在调查如何通过iCloud同步用户数据。由于数据非常小,我现在想到使用iCloud的键值存储(NSUbiquitousKeyValueStore)。

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

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

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

1 个答案:

答案 0 :(得分:1)

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

不确定你在这里要求什么。收到此通知后,商店已包含从云下载的新值。

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

上传/下载整个值。

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

没有。更新的频率基本上是影响iOS选择推动更改的时刻。简而言之,如果您经常这样做,可能会延迟同步。