从 Apple Watch 中检索用户默认信息

Retrieve user defaults information from an Apple Watch

提问人:bigreddawg 提问时间:7/1/2017 最后编辑:jscsbigreddawg 更新时间:7/2/2017 访问量:1344

问:

我有一台 iPhone 和一台 Apple Watch 配对在一起,手机的用户默认值中存储了一些值。我希望我的 Apple Watch 能够以某种方式检索存储的信息并将其带回手表。使用 Swift 实现这一目标的最佳方法是什么?

iOS 手表套件 Apple-Watch watchOS

答:

2赞 Dávid Pásztor 7/2/2017 #1

由于 ,除了框架之外,您没有任何用于在 iOS 和 watchOS 应用程序之间进行通信的内置函数。由于 Watch 应用程序不再被视为应用程序扩展,因此它们无法访问 iPhone,因此无法在 iPhone 上访问。watchOS2WatchConnectivityAppGroupsUserDefaults

对于同步,updateApplicationContext(_:) 函数似乎是最好的解决方案。您可以使用此功能发送数据字典(您刚刚在 iPhone 上保存到的数据),系统会尝试确保在您的应用程序向用户显示时收到数据。如果在应用对用户可见(在前台运行)之前多次调用该函数,则系统会覆盖以前的数据,因此 Watch 应用仅接收要显示的最新数据。UserDefaultsUserDefaults

评论

0赞 The iCoder 11/26/2018
我们可以使用 Userdefaults 直接存储以观看应用程序吗?因为我尝试在手表应用程序上存储和检索数据,所以它在手表应用程序的模拟器上工作。例如,我已经存储了图像数据并在手表应用程序本身上检索。在手表应用程序中存储数据是否有效?
1赞 Dávid Pásztor 11/26/2018
您可以直接从手表应用程序存储数据,但是,您不能使用 在 iOS 和 watchOS 应用程序之间同步数据。UserDefaultsUserDefaults
0赞 The iCoder 11/26/2018
感谢您的快速更新。是否有任何数据限制,或者取决于操作系统的可用内存?
0赞 Dávid Pásztor 11/26/2018
@TheiCoder正如本问答中所解释的,不可以,但是如果您要存储复杂数据,则不应将其用作主要的持久存储,请使用真正的数据库解决方案,例如或在这种情况下。UserDefaultsCoreDataRealm
0赞 The iCoder 11/26/2018
好的,我将相应地更新我的应用程序实现,在这种情况下,我们很可能会使用核心数据。感谢您的指导。赞赏。。!!!