看似简单,但我很挣扎......下面的代码在设置workoutTimer日期的行上崩溃了。我的WKInterfaceTimer也没有连接到IBOutlet,它需要吗?我只是出于时间的目的而使用它。
class InterfaceController {
var workoutTimer: WKInterfaceTimer!
var workoutStartTime: NSDate? = nil
func startWorkOutTimer() {
self.startWorkout()
if let test = self.workoutSecondsElapsed() {
print("timer seconds = \(test)")
}
}
func startWorkout() {
// To count up use 0.0 or less, otherwise the timer counts down.
workoutTimer.setDate(NSDate(timeIntervalSinceNow: 0.0) as Date)
workoutTimer.start()
self.workoutStartTime = NSDate()
}
func stopWorkout() {
workoutTimer.stop()
}
func workoutSecondsElapsed() -> TimeInterval? {
// If the timer hasn't been started then return nil
guard let startTime = self.workoutStartTime else {
return nil
}
// Time intervals from past dates are negative, so
// multiply by -1 to get the elapsed time.
return -1.0 * (self.workoutStartTime?.timeIntervalSinceNow)!
}
}
答案 0 :(得分:1)
来自 Apple doc:
不要自己子类化或创建此类的实例。而是在接口控制器类中定义出口,并将它们连接到storyboard文件中的相应对象。
您的应用可能正在崩溃,因为您的计时器为零,但是根据您的需要,您可以使用Timer类而不是WKInterfaceTimer。