0

我正在使用 watchOS 5 为 Apple Watch 构建一个锻炼应用程序。

我将锻炼设置存储在 UserDefaults plist 中。当手表扩展启动时,我尝试读取 UserDefaults 并为用户恢复锻炼设置。

根据苹果文档

此外,iOS 会自动将您的 iOS 应用首选项的只读副本转发到 Apple Watch。您的 WatchKit 扩展可以使用 NSUserDefaults 对象读取这些首选项,但它不能直接更改默认数据库。

如果您的 Watch 应用需要更改存储在默认数据库中的值,请使用 Watch Connectivity 框架将这些值发送回您的 iOS 应用,然后将这些值保存在那里。

由于 UserDefaults 仅用于手表扩展,如果用户更改手表上的任何设置,我将使用 WatchConnectivity 将该设置发送到 iPhone 并将其存储到 iPhone 上的 UserDefaults 中。所以下次用户启动手表扩展时,他应该得到更新的 userDefaults。

现在的问题是手表应用程序也有一个并发症,如果 Apple Watch 应用程序有并发症,它会留在后台以便快速启动应用程序。那么 iOS 应用程序何时会同步 userDefaults 的只读副本?

如果用户想要在每次启动手表应用扩展程序时恢复其设置,最佳实践是什么?

4

0 回答 0