对不起,如果这听起来像一个菜鸟问题。我正在为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