微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ios – 无法识别的选择器发送到实例NSTimer Swift

我正在尝试开发一个包含简单秒表功能的应用程序.我正在使用 Xcode 6和 Swift语言.这是FirstViewController中的代码
@IBAction func Stopwatch (Sender:UIButton) { 

var startTime = NSTimeInterval()

    func updateTime(timer:NSTimer) {

        //Find Current TIme

        var currentTime = NSDate.timeIntervalSinceReferenceDate()

        //Find the difference between current time and start time

        var elapsedtime :NSTimeInterval = currentTime - startTime

        //calculate the minutes in elapsed time.
        let minutes = UInt(elapsedtime / 60.0)
        elapsedtime -= (NSTimeInterval(minutes) * 60)

        //calculate the seconds in elapsed time.
        let seconds = UInt(elapsedtime)
        elapsedtime -= NSTimeInterval(seconds)

        //find out the fraction of milliseconds to be displayed.
        let hours = UInt(elapsedtime * 100)

        let strMinutes = minutes > 9 ? String(minutes):String(minutes)
        let strSeconds = seconds > 9 ? String(seconds):String(seconds)
        let strHours = hours > 9 ? String(hours):String(hours)

        //assign text to Label
        elapsedtimeLabel.text = "You have slept for \(strHours)"
    }

    //Timer 
    var timer = NSTimer.scheduledTimerWithTimeInterval(0.5,target: self,selector: Selector("updateTime:"),userInfo: nil,repeats: true)
    startTime = NSDate.timeIntervalSinceReferenceDate()

}
}

每次我运行应用程序(在iOS模拟器中)时,按下按钮时应用程序崩溃(执行秒表功能).错误总是会读取

2014-11-23 11:44:53.617 Sleep[9630:644637] -[Sleep.FirstViewController updateTime:]: 
unrecognized selector sent to instance 0x7ff6d9676e80
2014-11-23 11:44:53.622 Sleep[9630:644637] *** Terminating app due to uncaught exception 
'NSinvalidargumentexception',reason: '-[Sleep.FirstViewController updateTime:]: unrecognized 
selector sent to instance 0x7ff6d9676e80'
*** First throw call stack:

我不知道为什么会这样,我对iOS编程很新,所以请帮忙!

解决方法

让updateTime成为一个方法.
如果它是在一个纯粹的Swift类中,你需要在@objc前面说明该方法的声明,如:
class A {
     @objc func updateTime(timer:NSTimer) {

     }
}

原文地址:https://www.jb51.cc/iOS/332100.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐