gpt4 book ai didi

icloud - 当前设备的 NSUbiquitousKeyValueStore 通知

转载 作者:行者123 更新时间:2023-12-04 15:57:40 25 4
gpt4 key购买 nike

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

我首先观察 NSUbiquitousKeyValueStore 在外部更改时发布的 Notification:

NSUbiquitousKeyValueStore.didChangeExternallyNotification

然后,我设置了一个 String 值,该值是 UITextField 的输入:

let store = NSUbiquitousKeyValueStore.default
store.set(text, forKey: key)
store.synchronize()

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

看完documentation对于 NSUbiquitousKeyValueStore,我找不到主设备在更新 NSUbiquitousKeyValueStore 后也不会收到通知的原因。

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

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

最佳答案

也许他们updated the documentation (+ 1 年,因为你问)。

"This notification is sent only upon a change received from iCloud; it is not sent when your app sets a value."

我认为这意味着因为没有观察到任何变化(本地设备和 iCloud 已经同步)- 你没有收到通知。

关于icloud - 当前设备的 NSUbiquitousKeyValueStore 通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51255807/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com