【发布时间】:2016-04-26 11:56:51
【问题描述】:
我尝试了许多在其他问题中发现的方法,其中任何一种都有效。我的问题是计时器没有调用选择器
class MyViewController: UIViewController{
var progressBarTimer = NSTimer()
@IBOutlet weak var progress_bar: UIProgressView!
override func viewDidLoad() {
self.progress_bar.progress = 0
self.progressBarTimer = NSTimer.scheduledTimerWithTimeInterval(1.0, target: self, selector: #selector(MyViewController.updateProgress(_:)), userInfo: nil, repeats: true)
//also tried and redefining the updateProgress without timer parameter:
/*
*self.progressBarTimer = NSTimer.scheduledTimerWithTimeInterval(1.0, target: self, selector: #selector(MyViewController.updateProgress), userInfo: nil, repeats: true)
*/
}
func updateProgress(timer:NSTimer!) {
progress_bar.progress += 0.1
if (progress_bar.progress >= 1) {
progressBarTimer.invalidate()
}
}
}
我已经尝试过了
progressBarTimer.fire()
它只执行一次 updateProgress 函数。
有人能解释一下吗?我真的很感激
【问题讨论】:
-
我试过你的代码,它工作正常,它每秒调用一次 updateProgress 方法。
-
那么,为什么不适合我呢?可能是我在这个之前在其他 ViewController 中调用了其他 NSTimer?
-
您是否尝试过在 updateProgress 方法中注释所有代码并只编写 print() 语句?
-
是的,甚至调试也达不到那个代码
-
你是否通过在 updateProgress 函数中放置断点或打印来检查?