[英]Invalidate Timer from Function in Swift
我有一個用Swift
編寫的應用程序,其中的NSTimer
在viewDidLoad
聲明; 計時器每秒運行一次功能。
這是我的viewDidLoad()
的代碼:
let checkStateTimer = NSTimer.scheduledTimerWithTimeInterval(1.0, target: self, selector: "callCheckState:", userInfo: nil, repeats: true)
目前,我有另一個函數要暫停定時器。 我認為應該使用:
checkStateTimer.invalidate()
但是,由於計時器位於viewDidLoad
而不是在函數中或更早聲明,因此該函數無法訪問checkStateTimer
。
麻煩的是,我無法在viewDidLoad
外部聲明計時器(即僅在類中),因為它會導致錯誤。
所以,我的問題是,如何獲取視圖,以便它將在viewDidLoad
上啟動計時器,但能夠在函數運行時暫停計時器。 如何做到這一點的最佳方法是如何停止計時器?
將您的計時器聲明為類變量:
var checkStateTimer: NSTimer!
然后在viewDidLoad()中設置它:
func viewDidLoad() {
super.viewDidLoad()
checkStateTimer = NSTimer.scheduledTimerWithTimeInterval(1.0, target: self, selector: "callCheckState:", userInfo: nil, repeats: true)
}
然后在您的函數中使計時器無效:
func someFunction() {
checkStateTimer.invalidate()
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.