簡體   English   中英

從Swift中的功能使計時器失效

[英]Invalidate Timer from Function in Swift

我有一個用Swift編寫的應用程序,其中的NSTimerviewDidLoad聲明; 計時器每秒運行一次功能。

這是我的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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM