Swift NSTimer异常
我的代码有一个奇怪的bug,当我尝试分配/运行计时器时,它会抛出一个异常Swift NSTimer异常,swift,nstimer,Swift,Nstimer,我的代码有一个奇怪的bug,当我尝试分配/运行计时器时,它会抛出一个异常 var timer: NSTimer? self.timer = NSTimer.scheduledTimerWithTimeInterval(1.0, target: self, selector: "repeatData", userInfo: nil, repeats: true) 这是我的功能 private func repeatData() { print("test") } 这
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'
我试过使用冒号和不使用冒号。选择器应该是
“repeatData”
。冒号表示该方法采用的参数是repeatData
的实现所没有的。您的问题是repeatData
是私有的。只需移除专用
,计时器就会工作
使用选择器的方法必须是可访问的方法,否则无法找到它们,这就是为什么它与无法识别的选择器一起崩溃的原因
错误我尝试了这两种方法,但错误仍然存在。请打印不带冒号的错误,因为它不能是相同的。@Woodstock我添加的另一个错误是与NSTimer调用在同一swift文件中的私有函数?是@Woodstock它是使用二等兵好的,只是做了个测试。。。不知道为什么这只对了一半。它不工作的原因是由于生成的头。