SWIFT中无法识别的选择器错误

时间:2016-08-28 03:05:24

标签: swift function class selector nstimer

我有一个自定义类" MyTask"从其他类调用,如class" ViewController"。内部" MyTask"我有功能" startTask"这需要参数来启动NSTimer来执行函数" doStuff" 但是当我使用函数startTask并为其他函数设置选择器时它会崩溃

 class MyTask {
            var timer = NSTimer()
            var timerInterval = 0.0
            var target: AnyObject!
            var selector = Selector()

            func startTask(time: Double, target target: AnyObject, selector: Selector) {
                self.timerInterval = time
                self.target = target
                self.selector = selector
                doStuff()
            }
func doStuff() {
//....some code here to run
//====Crash happens on this line=====
self.timer = NSTimer.scheduledTimerWithTimeInterval(self.timerInterval, target: self, selector: self.selector, userInfo: nil, repeats: true)

}

在我的其他课程中,这就是我的工作

class ViewController {
   let mynewClass = MyTask()
   mynewClass = startTask(2, target: self, selector_: #selector(updateLabel))

func updateLabel() { print("") }
}

我收到错误*** NSForwarding:警告:类' abc'的对象0x7fe90242f6f0没有实现methodSignatureForSelector: - 提前麻烦 无法识别的选择器 - [。abc timerAction]

我做错了什么?

1 个答案:

答案 0 :(得分:1)

要成为选择器目标的类必须派生自NSObject。你在这里使用的是Objective-C功能;你必须有一个与Objective-C兼容的类。