【iOSアプリ開発!】一定時間毎に処理を実行する。:scheduledTimerWithTimeInterval – swift –

ある特定のイベントを一定時間の間隔で一定回数繰り返したいときなどがあります。
今回は、そのような処理の記述の仕方を説明します。

 

・一定時間間隔で処理を繰り返す

(1)例えば、ボタンを押したなどのあるタイミングでstartTimerを呼び出します。
(2)するとNSTimerのscheduledTimerWithTimeIntervalにより一定時間間隔毎にTemporalEventを呼び出します。
もしTemporalEventに対して引数などの値を渡したい場合は、userInfoに値を設定します。

・繰り返し処理を停止

(3)stopTimer()を呼び出す。

以下ソースコード

 
let timer:NSTimer? 

   func startTimer(){ 
     if timer == nil {
     // 0.3s 毎にTemporalEventを呼び出す
        timer = NSTimer.scheduledTimerWithTimeInterval(0.3, target: self, selector:"TemporalEvent", userInfo: nil,repeats: true) 
           }
    }
   
   //一定タイミングで繰り返し呼び出される関数
    func TemporalEvent(){
       //処理を記述 
     }
  
     func stopTimer(){
         if timer != nil {
            timer?.invalidate() timer = nil 
          }
     }