【发布时间】:2017-12-04 23:45:04
【问题描述】:
我有一个配对的 iPhone 和 Apple Watch,并且有一些值存储在手机的用户默认值中。我希望我的 Apple Watch 能够以某种方式检索存储的信息并将其带回 Watch。使用 Swift 实现这一目标的最佳方法是什么?
【问题讨论】:
标签: ios watchkit apple-watch watchos
我有一个配对的 iPhone 和 Apple Watch,并且有一些值存储在手机的用户默认值中。我希望我的 Apple Watch 能够以某种方式检索存储的信息并将其带回 Watch。使用 Swift 实现这一目标的最佳方法是什么?
【问题讨论】:
标签: ios watchkit apple-watch watchos
由于watchOS2,除了WatchConnectivity 框架之外,您没有任何内置函数用于iOS 和watchOS 应用程序之间的通信。由于 Watch 应用不再被视为应用扩展,因此它们无法访问AppGroups,因此在 iPhone 上也无法访问UserDefaults。
对于同步UserDefaults,updateApplicationContext(_:) 函数似乎是最好的解决方案。您可以使用此功能发送数据字典(您刚刚保存到 iPhone 上的UserDefaults 的数据),系统会尝试确保在您的应用程序显示给用户之前接收到数据。如果在应用对用户可见(在前台运行)之前多次调用该函数,系统会覆盖以前的数据,因此 Watch 应用只接收要显示的最新数据。
【讨论】:
UserDefaults,但是,您不能使用UserDefaults在iOS和watchOS应用之间同步数据。
UserDefaults 作为主要持久存储,请使用真正的数据库解决方案,例如CoreData 或 Realm 在这种情况下。