私はSwiftの初心者で、問題に直面しています。NSTimerでSwiftのgetTimeElapsed
私はタイマーとボタンを含むクラスを作成したい ボタンがタップされるたびに、タイマーが開始されてからボタンがタップされるまでの時間が経過すると400ミリ秒、私はセレクタで関数を呼び出す必要があります。
しかし、「GetTimeElapsed()」メソッドはswiftにはありません。その方法はわかりません。 手がかり/チュートリアルをお持ちの方は涼しいかもしれません!
のTHXみんな
私はSwiftの初心者で、問題に直面しています。NSTimerでSwiftのgetTimeElapsed
私はタイマーとボタンを含むクラスを作成したい ボタンがタップされるたびに、タイマーが開始されてからボタンがタップされるまでの時間が経過すると400ミリ秒、私はセレクタで関数を呼び出す必要があります。
しかし、「GetTimeElapsed()」メソッドはswiftにはありません。その方法はわかりません。 手がかり/チュートリアルをお持ちの方は涼しいかもしれません!
の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
}
}
は、あなたがあなたのタイマーを作成するとき、あなたはのUserInfo設定する必要があります。あなたの 'は
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