- 更新信息 -
我想做的是timerFunc使用一个NSTimer.scheduledTimerWithTimeInterval方法调用一个每五秒钟命名一次的函数,问题似乎是在运行时,我得到了错误
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-
[Animation.ViewController timerFunc:]: unrecognized selector sent to instance 0x7fe548d66040'
Run Code Online (Sandbox Code Playgroud)
在输出日志中.我一直在寻找其他人的NSTimers无济于事,我看到不少有选择器selector: Selector("timerFunc:")而不是selector: Selector("timerFunc")两种方式,但是,给出错误.另一件事是timerFunc函数和NSTimer都在viewDidLoad中,有什么问题吗?非常感谢对此问题的任何见解,感谢阅读.
timerFunc如下
func timerFunc(){
println("Timer")
}
Run Code Online (Sandbox Code Playgroud)
NSTimer下面
NSTimer.scheduledTimerWithTimeInterval(
5.0,
target: self,
selector: Selector("timerFunc"),
userInfo: nil,
repeats: true)
Run Code Online (Sandbox Code Playgroud)
Ant*_*ine 11
定时器不适用于私有方法回调.另外,请确保您的类继承自NSObject.Pure Swift类不起作用.
更多信息可以在这里找到:https://github.com/NxSoftware/NxSwiftTimer
另一件事是timerFunc函数和NSTimer都在viewDidLoad中,有什么问题吗?
是.那是你的问题.在timerFunc不能嵌套的内部viewDidLoad,它必须是在同一水平为顶级功能viewDidLoad.
class ViewController: UIViewController {
override func viewDidLoad() {
....
NSTimer.scheduledTimerWithTimeInterval(5.0, target: self, selector: "timerFunc", userInfo: nil, repeats: true)
}
func timerFunc() {
println("Timer")
}
}
Run Code Online (Sandbox Code Playgroud)
当计时器触发时,它将调用目标指定的对象上的选择器指定的函数.也就是说,它会打电话self.timerFunc().当你timerFunc()的内部嵌套时ViewDidLoad,它找不到它.
| 归档时间: |
|
| 查看次数: |
4841 次 |
| 最近记录: |