我是Swift的初學者,而且我面臨一個問題。用NSTimer在Swift中getTimeElapsed
我想創建一個包含一個定時器和一個按鈕的類 每次點擊按鈕我必須重新啓動定時器,如果定時器啓動和點擊按鈕之間的時間間隔大於(或等於) 400毫秒,我必須調用選擇器中的函數。
但是在swift中沒有「GetTimeElapsed()」方法,我不知道該怎麼做。 如果你有一些線索/教程,它可能很酷!
THX傢伙
我是Swift的初學者,而且我面臨一個問題。用NSTimer在Swift中getTimeElapsed
我想創建一個包含一個定時器和一個按鈕的類 每次點擊按鈕我必須重新啓動定時器,如果定時器啓動和點擊按鈕之間的時間間隔大於(或等於) 400毫秒,我必須調用選擇器中的函數。
但是在swift中沒有「GetTimeElapsed()」方法,我不知道該怎麼做。 如果你有一些線索/教程,它可能很酷!
THX傢伙
幾個小步驟:
定義的開始時間(在同一時間應該發生,你開始計時)
startTime = (NSDate.timeIntervalSinceReferenceDate())
測量時差
let elapsed = NSDate.timeIntervalSinceReferenceDate() - startTime
默認情況下,NSTimer不具有此功能。
正確的做法是用日期和日期進行比較。
順便說一句,你可以做一個很好的擴展是這樣的:
public extension NSTimer {
var elapsedTime: NSTimeInterval? {
if let startDate = self.userInfo as? NSDate {
return NSDate().timeIntervalSinceDate(startDate)
}
return nil
}
}
這樣,當你創建定時器,你必須設置用戶信息:
let timer = NSTimer.scheduledTimerWithTimeInterval(1.0, target: self, selector: #selector(foo), userInfo: NSDate(), repeats: true)
在你的「 foo'方法可以測試運行時間:
func foo() {
print(self.timer.elapsedTime)
}
注意:NSTimer已被Swift 3中的Timer替換 – cncool