由于未捕获的异常“NSInvalidArgumentException”而终止应用程序。无法识别的选择器发送到实例
Posted
技术标签:
【中文标题】由于未捕获的异常“NSInvalidArgumentException”而终止应用程序。无法识别的选择器发送到实例【英文标题】:Terminating app due to uncaught exception 'NSInvalidArgumentException'. unrecognized selector sent to instance 【发布时间】:2018-09-18 20:58:04 【问题描述】:我有timerRunner()
函数在单击按钮时运行:
func timerRunner()
timer = Timer.scheduledTimer(timeInterval: 1.0, target: target.self, selector: (#selector(self.timeUpdater)), userInfo: nil, repeats: true)
Timer.scheduledTimer
的选择器选择如下:
@objc func timeUpdater()
counter = counter + 1
timerLabel.text = secondConverter(seconds: counter)
但这是我收到的错误消息:
由于未捕获的异常而终止应用程序 'NSInvalidArgumentException',原因:'-[_SwiftValue timeUpdater]: 无法识别的选择器发送到实例'
【问题讨论】:
您的代码中的target.self
是什么?为什么不像你使用 #selector(self.timeUpdater)
那样简单地 self
呢?
【参考方案1】:
据我所知,timeUpdater
函数应该有一个Timer
类型的参数。
类似的东西:
@objc func timeUpdater(_ timer: Timer)
counter = counter + 1
timerLabel.text = secondConverter(seconds: counter)
【讨论】:
不是强制性的。以上是关于由于未捕获的异常“NSInvalidArgumentException”而终止应用程序。无法识别的选择器发送到实例的主要内容,如果未能解决你的问题,请参考以下文章
由于未捕获的异常而终止应用程序 [UIImageView _isResizable]
由于未捕获的异常“NSInternalInconsistencyException”错误而终止应用程序