WatchOS App Timer Not Firing When Second Timer Declared

38 Views Asked by At

I am writing my first WatchOS app. I have two timers, one to update a text showing UTC time, declared like this:

@State private var zuluTimeStr: String = ""
private let timer1 = Timer.publish(every: 1, on: .main, in: .common).autoconnect()
.
.
.

var body: some View {
        Text(text: zuluTimeStr)
            .onReceive(timer1, perform: { _ in
                self.zuluTimeStr = getTimeString()
            })
    }

And another to invalidate certain values if they are too old, declared like this:

private var timer2: Timer?
.
.
.
timer2 = Timer.scheduledTimer(withTimeInterval: 1, repeats: true, block: { _ in
     self.invalidateOldData()
})

First timer is declared in a subview, and second timer is declared in an ObservableObject descendant.

However, timer1 stops firing when timer2 is scheduled. It seems like I am either limited to one timer in WatchOS, or timer2 is somehow overriding timer1. Any thoughts?

0

There are 0 best solutions below