2016-05-25 8 views
1

私はSwiftの初心者で、問題に直面しています。NSTimerでSwiftのgetTimeElapsed

私はタイマーとボタンを含むクラスを作成したい ボタンがタップされるたびに、タイマーが開始されてからボタンがタップされるまでの時間が経過すると400ミリ秒、私はセレクタで関数を呼び出す必要があります。

しかし、「GetTimeElapsed()」メソッドはswiftにはありません。その方法はわかりません。 手がかり/チュートリアルをお持ちの方は涼しいかもしれません!

のTHXみんな

答えて

1

いくつかの小さなステップ:

  1. 開始時刻を定義します(あなたはタイマーを起動すると同時に起こるべき)

    startTime = (NSDate.timeIntervalSinceReferenceDate())

  2. 測定時差

    let elapsed = NSDate.timeIntervalSinceReferenceDate() - startTime

0

デフォルトでは、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) 
} 
+0

注:NSTimerはSwift 3のTimer – cncool