Сообщение: "libC++abi.dylib: завершается с необработанным исключением типа NSException (lldb) в моей консоли, когда я нажимаю кнопку в проекте swift xcode

Я получаю это сообщение: "libC++abi.dylib: завершается с необработанным исключением типа NSException (lldb)" в моей консоли всякий раз, когда я нажимаю кнопку в своей программе. Я не уверен, почему это происходит...

Вот мой код для кнопки:

class gameOverScene: SKScene {

  override func didMove(to view: SKView) {

    let backgroundNode = SKSpriteNode(imageNamed: "background")
    backgroundNode.position = CGPoint(x: self.frame.size.width / 2, y: self.frame.size.height / 2)
    self.addChild(backgroundNode)

    let button = UIButton(type: .system)
    button.frame = CGRect(x: 100, y: 100, width: 100, height: 50)
    button.backgroundColor = UIColor.red
    button.setTitle("New Game", for: .normal)
    button.addTarget(self, action: Selector(("action:")), for: UIControlEvents.touchUpInside)
    self.view?.addSubview(button)

    func action(sender:UIButton!) {
        print("button")
    }

    func buttonAction(sender: UIButton!) {

    }
  } // end didMove(to view:)
} // end class declaration

1 ответ

  1. Переместите свою функцию обработчика из func didMove(to:) сделать его членом класса

  2. добавлять @objc в объявлении функции вашего обработчика (т.е. @objc func action(sender: UIButton!))

  3. Затем измените создание селектора на это: #selector(gameOverScene.action(sender:))

Другие вопросы по тегам