iOS-检查Timer是否有效

时间:2019-01-09 02:24:55

标签: ios swift timer

在我的iOS应用程序中,只要有2秒钟没有结果,我就需要执行一个操作。

所以我在开始时设置了一个计时器:

var timer = Timer.scheduledTimer(timeInterval: 2, target: self, selector: #selector(ViewController.noResults), userInfo: nil, repeats:false)

每当获得结果时,我都会破坏计时器并启动一个新的计时器对象。我检查计时器是否有效,以了解是否已达到2秒。如果2秒钟内没有任何结果,我将采取以下措施:

if result != nil {
    timer.invalidate()
    timer = Timer.scheduledTimer(timeInterval:2, target: self, selector: #selector(ViewController.noResults), userInfo: nil, repeats:false)
}

if timer.isValid {
    print("has not been 2 seconds yet")
} else {
    print("do some action")
}

这是行不通的,而且我从没有进入do some action子句。有人可以指出我正确的方法吗?

1 个答案:

答案 0 :(得分:0)

在您的代码中,如何更改为timer.isValid,而不是使用timer != nil,如下所示,

if result != nil {
    timer.invalidate()
//        timer = Timer.scheduledTimer(timeInterval:2, target: self, selector: #selector(ViewController.noResults), userInfo: nil, repeats:false)
}

if timer != nil { // here
    print("has not been 2 seconds yet")
} else {
    print("do some action")
}

希望获得帮助!