Swift UserDefault:通过共享组共享数据不起作用

Swift UserDefault :sharing data via share group doesn't work

最近刚开始使用 swifting,使用应用组在 iOS 台设备之间共享数据时遇到了问题。

基本上我已经按照以下步骤设置了项目:

[iPhone]

[观看扩展]

我先有 运行 iPhone 目标,然后是手表应用程序。 但是,手表应用无法从用户默认读取预期数据。

我也在Github上传了测试项目,如果你对这个问题有什么想法,请告诉我。

[Github]

https://github.com/mattcn/WatchOS_DataSharing

提前感谢您的帮助。

在 Watch OS1 中这行得通,但在 Watch OS2 中发生了一些变化。您需要使用一种叫做 WatchConnectivity 的东西来将您想要保存的数据发送到手表。 因此,即使您使用共享用户默认设置或应用组,您放入其中的数据也会在手表上,因此无法从 iOS 应用访问。

要向手表发送数据,您可以使用 WatchConnectivity 框架。

感谢 Ashish 提出 OS1 和 OS2 之间的区别。

刚刚从以下位置找到了一个很好的参考:

在 watchOS 2 中,您需要记住有 2 个不同的进程 运行:

Apple Watch 进程 iPhone 进程 这两个进程都有自己的沙箱,这就是他们称之为 "native" 的原因,因此,如果您尝试使用共享的 NSUserDefaults,它将无法工作,因为 Apple Watch 应用程序与主机具有完全不同的沙箱 iPhone应用

如果您想将 phone 中的内容保存到 Apple watch 目标上的 NSUserDefaults:

使用WatchConnectivity 将您要保存的数据发送到手表。然后手表收到你发给它的数据时,保存到Apple watch默认的NSUserDefaults.