我正在尝试制作秒表,但似乎无法理解为什么我的应用程序无法正常使用。抱歉,我不知道要包含的内容,所以我包含了所有内容。

var timer = NSTimer()
var minutes: Int = 0
var seconds: Int = 0
var fractions: Int = 0
var startStopWatch: Bool = true
var StopwatchString: String = ""
@IBOutlet weak var display: UILabel!

@IBAction func start(sender: UIButton) {

    if startStopWatch == true {
        NSTimer.scheduledTimerWithTimeInterval(0.01, target: self, selector: Selector("updateStopwatch"), userInfo: nil, repeats: true)
        startStopWatch = false
    } else {
        timer.invalidate()
        startStopWatch = true
    }
}

@IBAction func reset(sender: UIButton) {

}

override func viewDidLoad() {
    super.viewDidLoad()
    display.text = "00:00.00"
}

func updateStopWatch() {
    fractions += 1
    if fractions == 100 {
        seconds += 1
        fractions = 0
    }

    if seconds == 60 {
        minutes += 1
        seconds = 0
    }


    let fractionsString = fractions > 9 ? "\(fractions)" : "0\(fractions)"
    let secondsString = seconds > 9 ? "\(seconds)" : "0\(seconds)"
    let minutesString = minutes > 9 ? "\(minutes)" : "0\(minutes)"
    StopwatchString = "\(minutesString):\(secondsString).\(fractionsString)"
    display.text = StopwatchString
}

最佳答案

我将您的代码剪切并粘贴到一个项目中,当我点击开始按钮时,错误消息的第一行说:


  -[My.ViewController updateStopwatch]:无法识别的选择器已发送到实例0x7fe0034b3520


这告诉您所有您需要知道的。您将updateStopwatch消息发送到视图控制器,但是它没有实现该方法。我注意到,尽管您的ViewController确实实现了updateStopWatch方法。在我看来,这是一个基本的大写错误。

始终,始终,始终至少读取错误消息的第一行。

07-28 03:45