使用键值将字典发送到 iCloud

Posted

技术标签:

【中文标题】使用键值将字典发送到 iCloud【英文标题】:Send Dictionary to iCloud using Key-value 【发布时间】:2014-09-29 13:13:33 【问题描述】:

我正在使用此代码将字典写入 iCloud。

 [[NSUbiquitousKeyValueStore defaultStore]
     setDictionary:dictCloudTables forKey:@"Tables"];

 [[NSUbiquitousKeyValueStore defaultStore] synchronize];

我正在使用此代码从云端获取字典:

 dictCloudTables = [[[NSUbiquitousKeyValueStore defaultStore]
                      dictionaryForKey:@"Tables"] mutableCopy];

它总是给我我第一次插入的字典。

我的代码有什么问题吗?

【问题讨论】:

【参考方案1】:

我看不出代码有任何明显错误(除非您不检查synchronise 的返回值)。我认为可能有问题的是您对应该发生的事情的期望。这是文档的摘录:

此方法不会强制写入新的键和值 iCloud。相反,它让 iCloud 知道新的键和值是 可以上传。不要依赖你的键和值 立即在其他设备上可用。

【讨论】:

在其他设备上更新通常需要多长时间,假设它们有正常的互联网。 其实没那么简单。它们似乎合并更新,这意味着如果您在短时间内发送大量更新,则可能需要更长的时间才能在其他机器上看到它们(因为它会等待进一步的更新)。另一方面,只有一个独立的更新几乎可以立即同步。简而言之,如果您需要已知延迟,iCloud 不是解决方案;你需要自己实现。

以上是关于使用键值将字典发送到 iCloud的主要内容,如果未能解决你的问题,请参考以下文章

简单地将图像发送到 icloud 时出现“无法完成操作。不允许操作”错误

区分记录类型和 iCloud 发送的通知

使用空字典作为值将 JSON 文件加载到 BigQuery

如何使用 Cloudkit 将字典(或任何其他复杂结构)保存到 iCloud 中?

如何在 swift 3 中使用 Alamofire 制作和发送字典数组(JSON 格式)发送到服务器

来自 Django 的 JsonResponse 没有将提到的键值对发送到 Reactjs