应用程序打开时在 watchOS 上检测新的一天

Detect New Day on watchOS While App Is Open

我目前正在开发我的第一个 watchOS 应用程序扩展,它基于 Xcode 的多平台模板。我正在寻找一种解决方案,让我能够在手表应用程序打开时检测到重大的日期变化,例如观察午夜。但是,我一直找不到这样的解决方案。如果可能,我想避免使用 Timers。

我能够观察到 UIApplication.significantTimeChangeNotification (iOS) and Notification.Name.NSCalendarDayChanged (macOS), but I've not found a similar notification for watchOS. What I did find in the documentation for WKExtension 是类似于 iOS 应用程序生命周期通知的通知。

我想要的是在 watchOS 应用程序打开并观察到新的一天时更新 UI,这 UIApplication.significantTimeChangeNotification 让我进入 iOS。当应用程序在手表上打开时,手表应用程序是否可以观察日期变化?

您也可以在 watchOS 上使用 .NSCalendarDayChanged

NotificationCenter.default.addObserver(
    self,
    selector: #selector(dayChanged(_:)),
    name: .NSCalendarDayChanged,
    object: nil
)