线程 1:信号 SIGABRT,无法识别的选择器发送到实例
Posted
技术标签:
【中文标题】线程 1:信号 SIGABRT,无法识别的选择器发送到实例【英文标题】:Thread 1: signal SIGABRT, unrecognized selector sent to instance 【发布时间】:2019-10-27 12:52:07 【问题描述】:我正在尝试在 xcode 中构建倒数计时器,但由于某种原因它不起作用。
我已经尝试了各种方法,但我仍然遇到同样的错误。
import Foundation
import UIKit
class SecondViewController: UIViewController
// text field counter
var count:Int = 300
@IBOutlet weak var counter: UILabel!
let timer = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(countDown), userInfo: nil, repeats: true)
override func viewDidLoad()
super.viewDidLoad()
// Do any additional setup after loading the view
@objc func countDown()
counter.text = String(count)
count -= 1
这是我得到的错误:
-[__SwiftValue countDown]:无法识别的选择器发送到实例 0x6000025dde00
【问题讨论】:
【参考方案1】:您在实例成员的初始化中传递了一个实例方法,而没有使用lazy
计算初始化,因此不能保证您将获得完全初始化的实例来绑定其方法。如下安排timer
,
class SecondViewController: UIViewController
// text field counter
var count:Int = 300
@IBOutlet weak var counter: UILabel!
var timer: Timer?
override func viewDidLoad()
super.viewDidLoad()
self.timer = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(countDown), userInfo: nil, repeats: true)
@objc func countDown()
counter.text = String(count)
count -= 1
【讨论】:
感谢这工作!!!现在终于搞定了,非常感谢您的帮助!【参考方案2】:只检查是否 @IBOutlet 弱变量计数器:UILabel! 连接到您的故事板标签
【讨论】:
这就是我的问题的答案!以上是关于线程 1:信号 SIGABRT,无法识别的选择器发送到实例的主要内容,如果未能解决你的问题,请参考以下文章
无法保存数据 --- Swift、IOS、Core 数据 --- 线程 1:信号 SIGABRT
线程 1:“-[Xylophone.ViewController buttonClicked:]:无法识别的选择器发送到实例 0x7ff83a6074e0”