【问题标题】:Retrieve user defaults information from an Apple Watch从 Apple Watch 检索用户默认信息
【发布时间】:2017-12-04 23:45:04
【问题描述】:

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

【问题讨论】:

标签: ios watchkit apple-watch watchos


【解决方案1】:

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

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

【讨论】:

  • 我们可以直接使用用户默认值存储来观看应用程序吗?因为我尝试在手表应用程序上存储和检索数据,所以它在手表应用程序的模拟器上工作。例如,我存储了图像数据并在手表应用程序本身上检索。在手表应用中存储数据是否有效?
  • 您可以直接从手表应用将数据存储在UserDefaults,但是,您不能使用UserDefaults在iOS和watchOS应用之间同步数据。
  • 感谢您的快速更新。是否有任何数据限制或取决于操作系统可用的内存?
  • @TheiCoder 如this Q&A 中所述,不,但如果您要存储复杂数据,则不应使用 UserDefaults 作为主要持久存储,请使用真正的数据库解决方案,例如CoreDataRealm 在这种情况下。
  • 好的,我会相应地更新我的应用程序实现,在这种情况下我们很可能会使用核心数据。感谢您的指导。赞赏..!!!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多