ios - iOS - 检查计时器是否有效
问题描述
在我的 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
条款。有人可以指出我正确的方式吗?
解决方案
在您的代码中,而不是使用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")
}
希望这有帮助!
推荐阅读
- macos - Homebrew:如何安装使用瓶子的旧版本的公式?
- javascript - 多次使用 ref react hooks
- java - ShowSoftInput 只显示一次软键盘
- jquery - 如何创建具有可变定位和 z 索引的滑动团队部分?
- javascript - 为什么我不能处理错误连接?MQTT
- go - 扩展结构定义 golang
- javascript - 如何让 Angular 在编译时检测 @NgModule 中不匹配的提供程序?
- swift - MKPointAnnotation 如何隐藏标记图像
- jquery - 响应按钮单击时未显示模态弹出窗口
- python - 在 python 中加载 npz 文件的内容时出现 NameError