由于未捕获的异常“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”错误而终止应用程序

“由于未捕获的异常而终止应用程序”在推送视图控制器时崩溃

由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,

由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序