ストップウォッチアプリ
import UIKit class ViewController: UIViewController { func result() { print("1 second has passed") } override func viewDidLoad() { super.viewDidLoad() var timer = NSTimer() timer = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: Selector("result"), userInfo: nil, repeats: true) } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } }
scheduledTimerWithTimeInterval|タイマーを発生させる間隔
(1.5fなら1.5秒間隔)
target タイマー発生時に呼び出すメソッドがあるターゲット 時間が経過するとこのクラスのメソッドが呼び出される
selector タイマー発生時(時間がきたら呼び出される)に呼び出すメソッドを指定する
userInfo selectorで呼び出すメソッドに渡す情報(NSDictionary)
repeats タイマーの実行を繰り返すかどうかの指定
(YES:繰り返す NO:1回のみ)
今回はタイマーの情報を何かに使うわけではないので、userinfoはnilに設定する。
resultメソッド内に記載したものが毎秒出力される。
経過した時間量を測るためにvar time = 0
のインスタンス変数を定義する。
viewDidLoad内に書いたメソッドはアプリが起動した途端に動き出す。
self
は今書いているクラスのインスタンスを指す。
self
は自分自身(インスタンス)を指し、そのインスタンスの属性であることを示すために使用する。
targetをselfにすると今回の場合、viewcontrollerクラスのメソッドが呼び出されるということ。
上記コードから1→2→3とカウントするように設定する。 ・var time = 0(0から始める)をviewcontroller内に定義する。 ※resultメソッド内に定義するとのちに変数timeにインクリメントを定義しても、resultメソッドが呼ばれる度に変数timeが0に戻ってしまうため、resultメソッドの外に定義する。またviewDidLoad内に定義するとアクセスできなくなる。