編集
何かコードがおかしかったので修正。
前回のフレームからの経過時間を求めたい時ってありますよね。速度の計算とか。そんなときに使えるやつです。たぶんこんな感じで書けば良い。
ElapsedTimeCounter.swift
import Foundation
class ElapsedTimeCounter {
class var instance: ElapsedTimeCounter {
struct Static {
static let instance = ElapsedTimeCounter()
}
return Static.instance
}
private var lastDate: NSDate?
func getMillisec() -> Int? {
let now = NSDate()
if let date = lastDate {
let elapsed = now.timeIntervalSinceDate(date)
lastDate = now
return Int(elapsed * 100.0)
}
lastDate = now
return nil
}
}
UIScrollViewでこんな感じに使ってます。
MyScrollView.swift
func scrollViewDidScroll(scrollView: UIScrollView) {
if let millisec = ElapsedTimeCounter.instance.getMillisec() {
println("sec \(millisec)")
}
}
Millisecを返すようにしてるんですけどほとんど1[ms]になっちゃいますね。もっと細かい単位で取ったとして、意味のある数字とも思えないし、どうしましょ。
swift1.2からSingletonが簡単に書けるようになったらしいですね。早くアップデートしたいです(今開発中なので人柱怖い)