iOS - KeyValueStore 不能跨设备工作

Posted

技术标签:

【中文标题】iOS - KeyValueStore 不能跨设备工作【英文标题】:iOS - KeyValueStore not working across devices 【发布时间】:2021-01-08 22:01:50 【问题描述】:

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

我有一个视图控制器,其中包含以下内容:

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”的值会发生变化,但两个设备之间的值永远不会同步。

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

【问题讨论】:

【参考方案1】:

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

【讨论】:

以上是关于iOS - KeyValueStore 不能跨设备工作的主要内容,如果未能解决你的问题,请参考以下文章

跨开发人员的 iOS 存储

IOS剪贴板(复制粘贴)不能跨应用程序

苹果又魔改安卓? iOS 15 正式发布可跨设备移动文件,这届 WWDC21 带来了什么?...

跨设备建立同步音乐流

:跨移动设备的悬停行为

UIView 高度无法跨设备正确缩放图像