Can anyone explain to me why my UI doesn't update after the timer fires in this code below? Even when the timer fires, the UI doesn't update.
thanks, in advance for any guidance
Mike
struct ContentView: View {
@State var referenceDate: Date = Date()
init () {
setupTimer()
}
func setupTimer() {
let calendar = Calendar.current
guard let triggerDate = calendar.nextDate(
after: Date(),
matching: DateComponents(hour: 14, minute: 46, second: 0),
matchingPolicy: .nextTime
) else { return }
let timer = Timer(fire: triggerDate, interval: 0.2, repeats: false) { _ in
self.referenceDate = Date()
print("runLoop!")
}
RunLoop.main.add(timer, forMode: .common)
}
var body: some View {
VStack {
Text("Ref time: \(referenceDate.formatted(date: .abbreviated, time: .standard))")
}
}
}