在重复计时器中调用方法

时间:2018-01-18 00:14:34

标签: ios swift timer notifications

我正在使用计时器检查手表连接。我想在状态断开时发送通知。我的代码有效但每次重复时都会发送通知。我需要计时器继续运行,但只发送1个通知。我该怎么做呢?

Timer.scheduledTimer(withTimeInterval: 20, repeats: true) { timer in
    if WCSession.default.isReachable {
        print("Connected")
    } else {
        self.scheduleANotification()
        print("Disconnected")
    }
}

1 个答案:

答案 0 :(得分:0)

向班级添加Bool属性,以跟踪是否已设置通知。如果没有,请发送通知,然后设置标志。如果设置,请不要发送通知。

将此属性添加到您的班级:

var notificationSent = false

更新计时器块:

if WCSession.default.isReachable {
    print("Connected")
} else {
    if !notificationSent {
        self.scheduleANotification()
        notificationSent = true
    }
    print("Disconnected")
}