【发布时间】:2014-11-08 10:20:43
【问题描述】:
--编辑更新信息--
我想做的是使用NSTimer.scheduledTimerWithTimeInterval 方法每五秒调用一次名为timerFunc 的函数,问题似乎是在运行时,我得到了错误
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-
[Animation.ViewController timerFunc:]: unrecognized selector sent to instance 0x7fe548d66040'
在输出日志中。我一直在查找其他人的 NSTimers 无济于事,我看到很多选择器都使用 selector: Selector("timerFunc:") 而不是 selector: Selector("timerFunc") 两种方式,但是,给出错误。另一件事是 timerFunc 函数和 NSTimer 都在 viewDidLoad 中,这有什么问题吗?非常感谢您对问题的任何见解,感谢阅读。
下面的timerFunc
func timerFunc(){
println("Timer")
}
NSTimer 下面
NSTimer.scheduledTimerWithTimeInterval(
5.0,
target: self,
selector: Selector("timerFunc"),
userInfo: nil,
repeats: true)
【问题讨论】:
-
你的 timerFunc 的签名是什么?
-
@vacawama 签名?目前我正试图让 NSTimer 工作,所以我的 timerFunc 只是一个
println("Timer")我将我的 timerFunc 添加到主要问题中。我已经弄清楚了我之前的问题,只是我不需要调用 timeInterval:,它出于某种原因搞砸了。当前的问题是它在编辑器中没有给我一个错误,但是当我运行它时,输出日志在几行乱码中显示Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[Animation.ViewController timerFunc]: unrecognized selector sent to instance 0x7fcc53e67010。 -
我只是确保您的
timerFunc没有带参数。你的没有,所以这不是问题。你的timerFunc是ViewController的方法吗? -
@vacawama 我的 timerFunc 是 viewDidLoad 内部的一个函数,它位于 ViewController 内部。我通过在我的 NSTimer 位置旁边写一个
timerFunc()来测试它是否可以被我的 NSTimer 调用,证明它可以访问我的 NSTimer 所在的位置。然而,也许我的 NSTimer 在我的 viewDidLoad 中没有访问权限?我应该为它创建一个带有特殊子类的全新类吗?如果有,是什么子类? -
在下面查看我的答案。