我的代码遇到了一个奇怪的错误,当我尝试分配/运行一个定时器时抛出异常。
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'
我在有或没有结肠的情况下尝试过它。
答案 0 :(得分:1)
您的问题是repeatData
是private
。只需删除private
,您的计时器就可以正常工作。
使用选择器的方法需要是可访问的方法,否则它们不会找到它们,这就是为什么它会因unrecognized selector
错误而崩溃
答案 1 :(得分:0)
选择器应为"repeatData"
。冒号意味着该方法采用了repeatData
的实现没有的参数。