次を示すタイマーを作成しようとしています-時間:分:秒:ミリ秒。これが私のコードです:
var timer = NSTimer()
var startTime = NSTimeInterval()
func updateTime()
{
var currentTime = NSDate.timeIntervalSinceReferenceDate()
var elapsedTime : NSTimeInterval = currentTime - startTime
let hours = UInt8(elapsedTime / 3600.0)
elapsedTime -= (NSTimeInterval(hours) * 3600)
let minutes = UInt8(elapsedTime / 60.0)
elapsedTime -= (NSTimeInterval(minutes) * 60)
let seconds = UInt8(elapsedTime)
elapsedTime -= NSTimeInterval(seconds)
let fraction = UInt8(elapsedTime * 100)
let strHours = String(format: "%02d", hours)
let strMinutes = String(format: "%02d", minutes)
let strSeconds = String(format: "%02d", seconds)
let strFraction = String(format: "%02d", fraction)
timeLabel.text = "\(strHours):\(strMinutes):\(strSeconds):\(strFraction)"
}
@IBAction func start(sender: AnyObject) {
if !timer.valid {
let aSelector : Selector = “updateTime”
timer = NSTimer.scheduledTimerWithTimeInterval(0.01, target: self, selector: aSelector, userInfo: nil, repeats: true)
startTime = NSDate.timeIntervalSinceReferenceDate()
}
}
別の方法でタイマーに 5 秒を追加するにはどうすればよいですか? (明らかに、 global を作成する必要がありますがvar
、今のところ単純にしようとしており、最初に実際に 5 秒を追加してから、グローバル部分について心配します。) 以下を変更/追加してみました:
var seconds = UInt8(elapsedTime)
seconds += 5 // Error here...
elapsedTime -= NSTimeInterval(seconds)
しかし、次のようなエラーが表示されます。
致命的なエラー: 浮動小数点値は UInt8.min より小さいため、UInt8 に変換できません
タイマーに 5 秒を追加する正しい方法は何ですか?