首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当前设备的NSUbiquitousKeyValueStore通知

当前设备的NSUbiquitousKeyValueStore通知
EN

Stack Overflow用户
提问于 2018-07-10 08:47:12
回答 1查看 374关注 0票数 3

我正在使用NSUbiquitousKeyValueStore在iCloud中存储用户首选项。为了确保我理解NSUbiquitousKeyValueStore是如何工作的,我成功地存储了一个String值,并在一个单独的设备上监视了该值。下面解释我的配置。

我首先观察了当NSUbiquitousKeyValueStore在外部发生变化时发布的Notification

代码语言:javascript
复制
NSUbiquitousKeyValueStore.didChangeExternallyNotification

然后,我设置了一个作为UITextField输入的String

代码语言:javascript
复制
let store = NSUbiquitousKeyValueStore.default
store.set(text, forKey: key)
store.synchronize()

为了确保正常工作,我在响应通知的方法中创建了一个UIAlertController。我观察到,在设置主设备上的值后六秒钟内,辅助设备上就会出现警报。但是,在设置该值后,我从未观察到警报出现在主设备上。

在阅读NSUbiquitousKeyValueStoredocumentation后,我找不到主设备在更新NSUbiquitousKeyValueStore后也无法收到通知的原因。

NSUbiquitousKeyValueStore中设置更新值之前,我是否需要一种解决方案将其保存在本地?在NSUbiquitousKeyValueStore中持久化这些值之前,我可以在UserDefaults中本地持久化它们。但是,如果在尝试在NSUbiquitousKeyValueStore中持久化这些值时出现错误,则需要恢复UserDefaults中的值。如果没有通知主设备从它保留的更改,我甚至会被通知在观察通知中的错误吗?如果我在成功时没有收到通知,我很难相信我会这样做。

我是否遗漏了什么,或者这是预期的行为?

EN

回答 1

Stack Overflow用户

发布于 2019-06-10 23:41:16

也许他们updated the documentation (从你问起+1年)。

“此通知仅在收到来自iCloud的更改时发送;不会在您的应用程序设置值时发送。”

我假设这意味着因为没有观察到任何更改(本地设备和iCloud已经同步),所以您不会收到通知。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51255807

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档