2017-10-21 2 views
-1

私はです。NSTimerアクションはです。しかし、私はに初めて電話したいと思っています。Objective-CのNSTimerのnonTequiredTimerWithTimeInterval

_timepast = 6; 
self.timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(handleDelay) userInfo:nil repeats:YES]; 


-(void)handleDelay 
{ 
    _timepast = _timepast - 1; 
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(_timepast * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ 
     [self handleTimer]; 
    }); 
} 
+0

、のようなチェックを逆に書くのか? –

+0

@HardikShahうん、そうです。 –

答えて

0

まず第一に、あなたが5秒後に行動を開始してから5秒の遅延の後にトリガ最初のタイマーを作成し、最初のタイマーを無効にし、5のカウントダウンを使用して第二のタイマーを起動したい場合には、5秒後に意味あなたのセレクターが呼び出され、その中のアクションを処理します。私はあなたにセカンドタイマーの仕組みのコードを与えています。私はあなたが5秒の遅延のための最初のタイマーを処理する方法を知って欲しいと思います。

  1. 作成2変数に

    var timerCount = 5

    var timer : Timer!

  2. 作成タイマーの1秒間隔

    timer = Timer.scheduledTimer(timeInterval: 1, target:self, selector: #selector(self.startTimer), userInfo: nil, repeats: true)

  3. セレクタメソッドは、だから、それは右、あなたはタイマーを逆にしたい意味

    func startTimer() { if timerCount > 0 { label.text = String(timerCount--) } else { timer.invalidate() } }

+0

それは動作しません..私は最初のアクションコールが5秒後に、次のアクションが4の後に、次が3の後に、次のアクションが0.5秒後にそれぞれ欲しいです。あなたのコードは、すべて同じ時間後にアクションを呼び出します。 –