Swift NSTimer例外

时间:2016-02-01 20:00:31

标签: swift nstimer

我的代码遇到了一个奇怪的错误,当我尝试分配/运行一个定时器时抛出异常。

var timer: NSTimer?
     self.timer = NSTimer.scheduledTimerWithTimeInterval(1.0, target: self, selector: "repeatData", userInfo: nil, repeats: true)

这是我的功能

 private func repeatData() {
        print("test")
}

抛出

016-02-01 14:45:31.169 twu[43110:60021261] -[Test.Repeater repeatData:]: unrecognized selector sent to instance 0x7f848ba14e10

没有错误:

2016-01-28 17:27:51.958 my_target[16476:48497867] -[Test.Repeater repeatData]: unrecognized selector sent to instance 0x7fd06bc1c310
2016-01-28 17:27:51.968 my_target[16476:48497867] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[Test.Repeater repeatData]: unrecognized selector sent to instance 0x7fd06bc1c310'

我在有或没有结肠的情况下尝试过它。

2 个答案:

答案 0 :(得分:1)

您的问题是repeatDataprivate。只需删除private,您的计时器就可以正常工作。

使用选择器的方法需要是可访问的方法,否则它们不会找到它们,这就是为什么它会因unrecognized selector错误而崩溃

答案 1 :(得分:0)

选择器应为"repeatData"。冒号意味着该方法采用了repeatData的实现没有的参数。