這是我想出的解決方案。現在,計時器結束時的提醒僅通過「完成」打印到控制檯。非常感謝用戶Prawn,因爲我在這個解決方案中使用了他的一些代碼。
import WatchKit
import Foundation
var myTimer : NSTimer?
var elapsedTime : NSTimeInterval = 0.0
var startTime = NSDate()
var duration : NSTimeInterval = 4.0 //Arbitrary 4 seconds to test timer.
class InterfaceController: WKInterfaceController {
override func awakeWithContext(context: AnyObject?) {
super.awakeWithContext(context)
WKTimer.setDate(NSDate(timeIntervalSinceNow: duration))
}
override func willActivate() {
super.willActivate()
}
@IBOutlet var WKTimer: WKInterfaceTimer! //The WatchKit timer the user sees
@IBAction func startButton() { //Start button
NSTimer.scheduledTimerWithTimeInterval(duration, target: self, selector: ("timerDone"), userInfo: nil, repeats: false)
WKTimer.setDate(NSDate(timeIntervalSinceNow: duration))
WKTimer.start()
}
//Reset button resets the timer back to the original time set.
@IBAction func resetButton() {
WKTimer.stop()
WKTimer.setDate(NSDate(timeIntervalSinceNow: duration))
}
func timerDone() {
print("Done")
}
override func didDeactivate() {
// This method is called when watch view controller is no longer visible
super.didDeactivate()
}
}
對於初學者,您在'else'語句末尾丟失了一個大括號。 – aaplmath
來自WKInterfaceTimer文檔:*「要知道計時器何時到達0,請配置與您用於設置計時器的目標日期相同的NSTimer對象」* –