在我的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
子句。有人可以指出我正确的方法吗?
答案 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")
}
希望获得帮助!