0

我有一个应用程序将实现键值存储,以保存一些变量并跨设备同步。

我有一个具有以下内容的视图控制器:

var keyStore: NSUbiquitousKeyValueStore?

在 viewDidLoad 我做

keyStore = NSUbiquitousKeyValueStore()

然后当用户看完我运行的视频时

keyStore?.set(num, forKey: "watched") // where num is a number
keyStore?.synchronize()

为了检查“watched”变量的值,我在 didFinishLaunchingWithOptions 上运行它:

keyStore = NSUbiquitousKeyValueStore()
let val = keyStore?.string(forKey: "watched")
print(val)

如果我多次测试该应用程序,则 val 的值会相应更改。但是,当我在不同的设备上进行测试时,val 返回 nul。如果我在这个新设备中使用该应用程序,“watched”的值会发生变化,但两个设备之间的值永远不会同步。

我读到有一个通知方法来检查存储的值是否实时更改,但在这种情况下,我在应用程序启动期间读取存储的值。那岂不是不需要了?

4

1 回答 1

0

我的错。确保您已在模拟器中登录到 Cloud。

于 2021-01-09T01:12:13.627 回答