Swiftのタイマー(Timer)を使った定期処理

calendar

スポンサーリンク

Timerの定期処理

import UIKit

class SampleTimerViewController: UIViewController {
    
    var addTimer = Timer()
    var timerCount = 0

    override func viewDidLoad() {
        super.viewDidLoad()
        
        // タイマーの設定(5秒間隔でメソッド「timerCall」を呼び出す)
        addTimer =  Timer.scheduledTimer(timeInterval: 5.0, target: self, selector: #selector(timerCall), userInfo: nil, repeats: true)

    }

    // タイマーで呼び出されるメソッド
    @objc func timerCall() {
        timerCount += 1
        print("timerCount: \(timerCount)")
        if timerCount > 3 {
            // タイマーを無効にする
            addTimer.invalidate()
            print("Timerは無効になりました。")
        }
    }

}
Timerで指定したメソッドをすぐ呼び出したい時
// fire()は、Timerで指定したメソッド(timerCall)をタイムスケジュール関係なく呼び出します。
// すぐにメソッド(timerCall)を呼び出さない場合、fire()は必要ない。
addTimer.fire()
Timerが有効か調べる
// isValidは、Timerが有効な場合はtrue、無効な場合はfalseを返す
if addTimer.isValid {
    print("Timerは有効です。")
} else {
    print("Timerは無効です。")
}
Timerを無効にする
// タイマーを無効にする
addTimer.invalidate()

動作環境:Xcode10.1, Swift4.2.1

この記事をシェアする

コメント

コメントはありません。

down コメントを残す