iCloud KeyValueStore 首选项更改并在各种设备上处理它们

Posted

技术标签:

【中文标题】iCloud KeyValueStore 首选项更改并在各种设备上处理它们【英文标题】:iCloud KeyValueStore preference changes and handling them across various devices 【发布时间】:2012-09-22 18:35:20 【问题描述】:

根据 Apple 的指南,我的应用程序为用户提供了启用/禁用 iCloud 存储的选项。

用例:

默认情况下,iCloud 中的存储是禁用的 用户在 ios 设备 1 上下载应用程序并创建一些文件等 然后用户在 iOS 设备 2 上下载应用程序并创建一些文件等。这些文件与在 iOS 设备 1 上创建的文件不同 然后用户在 iOS 设备 1 上启用 iCloud。此设置使用 iCloud 的 KV 存储传播到 iOS 设备 2。 iOS 设备 1 沙箱中的文件也被移动到 iCloud

场景 1:

用户在 iOS 设备 2 上启动应用程序。我知道现在 iCloud 已启用,我提示用户它已在其他设备上启用,并且我正在将您的本地文件移动到 iCloud。我认为这里没有问题。

场景 2:

当通知到达时(在设备 1 上启用了 iCloud),用户正在 iOS 设备 2 上使用该应用,并且屏幕上的模态视图很少。我不确定如何通知用户有关更改并执行操作,即将设备 2 的沙盒文件移动到 iCloud。

应用程序的所有视图控制器是否应该具有被中断并处理此事件的能力?

在这里寻找一些关于用户体验和正确做法的建议和指导。

【问题讨论】:

【参考方案1】:

将特定于设备的设置保存在 NSUserDefaults 中,并且不要自动上传文件——自动上传似乎有点不对,因为另一台设备上的设置发生了变化。如果您强制用户导航到“启用 iCloud 存储”视图控制器,您可以更好地控制其他 VC 的可见性,并且不太可能遇到意外。

将其设为每个文件的设置也是值得的(例如,出于安全/空间原因,他们可能不需要在 iCloud 中的文件)。

或者,UIAlertView 应该可以在您应用中的任何位置工作,但您必须确保在视图控制器中查看(和编辑?)文件时可以无缝地将文件转移到 iCloud。

【讨论】:

以上是关于iCloud KeyValueStore 首选项更改并在各种设备上处理它们的主要内容,如果未能解决你的问题,请参考以下文章

如何读取基于 iOS 文档的应用程序的保存位置(iCloud 或本地)的用户偏好?

将 KeyboardType 更改为带小数点的数字键盘以用于设置首选项

iOS - KeyValueStore 不能跨设备工作

移至... > iCloud > 便笺选项已禁用

在我将自动播放的首选项更改为“允许所有自动播放”之前,javascript 中的视频播放() api 在 safari 中不起作用

在共享首选项中获取文件大小