對不起,如果這聽起來像一個菜鳥問題。我正在爲iPhone構建一個秒錶應用程序。標籤顯示hh:mm:ss。秒正確重置爲0,當他們從0到60,並重新開始,但高於60分鐘去下面的代碼:在秒錶中超過60分鐘
var elapsedTime = NSTimeInterval()
@IBAction func buttonAction(sender: AnyObject)
{
timer = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: "fireStopWatch", userInfo: nil, repeats: true)
startTime = NSDate(timeIntervalSinceNow: 0)
}
func fireStopWatch()
{
var currentTime:NSDate = NSDate(timeIntervalSinceNow: 0)
elapsedTime = currentTime.timeIntervalSinceDate(startTime)
let minutes = UInt8(elapsedTime/60)
elapsedTime -= (NSTimeInterval(minutes) * 60)
let seconds = UInt8(elapsedTime)
elapsedTime -= NSTimeInterval(seconds)
let hours = UInt8(elapsedTime/3600.0)
elapsedTime -= (NSTimeInterval(hours) * 3600)
let strHours = hours > 9 ? String(hours):"0" + String(hours)
let strMinutes = minutes > 9 ? String(minutes):"0" + String(minutes)
let strSeconds = seconds > 9 ? String(seconds):"0" + String(seconds)
displayTimeLabel.text = "\(strHours):\(strMinutes)"
displaySecondsLabel.text = "\(strSeconds)"
}
什麼與不與分發生的秒發生了什麼?
我不知道爲什麼這個答案被拒絕投票(也許選民可以發表評論)。我更喜歡整數算術,以避免任何浮點精度問題,但我不認爲這將是一個問題,在這種特殊情況下。 – 2014-11-02 19:09:23