我有一个应用程序将实现键值存储,以保存一些变量并跨设备同步。
我有一个具有以下内容的视图控制器:
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”的值会发生变化,但两个设备之间的值永远不会同步。
我读到有一个通知方法来检查存储的值是否实时更改,但在这种情况下,我在应用程序启动期间读取存储的值。那岂不是不需要了?