【Swift x iOSアプリ開発】一定時間毎の処理実行:scheduledTimerWithTimeInterval

swiftiOSアプリ開発/Swift
この記事は約2分で読めます。

はじめに

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

処理の流れ

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

(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
    }
}

タイトルとURLをコピーしました