【问题标题】:SIGABRT error in swift after a button is pressed - the segue doesn't execute按下按钮后迅速出现 SIGABRT 错误-segue 不执行
【发布时间】:2019-03-15 06:13:17
【问题描述】:

我正在尝试为一个单词扰频器应用程序制作排行榜,因此我会在转到下一个最终将成为排行榜的视图控制器之前保存数据。我的插座都已连接,并且 segue 标识符写入正确,所以我不明白为什么在按下完成后应用程序崩溃

此处出现错误行:class AppDelegate: UIResponder, UIApplicationDelegate {

var finalScore = Int()
var playerName = String()
var allMyStoredData = UserDefaults.standard
class secondVC: UIViewController {

    @IBOutlet weak var scoreLabel: UILabel!
    @IBOutlet weak var nameTF: UITextField!
    @IBOutlet weak var doneButton: UIButton!
    var playerScore = 0

    override func viewDidLoad() {
        super.viewDidLoad()
        scoreLabel.text = "Your score is: \(finalScore)"
        loadData()
    }

    @IBAction func donePressed(_ sender: Any) {
        saveData()
        //this part won't execute
        performSegue(withIdentifier: "toLeaderboard", sender: self)
    }

    func saveData () {
        playerName = nameTF.text!
        playerScore = finalScore
        allMyStoredData.set(playerName, forKey: "saveTheName")
        allMyStoredData.set(playerScore, forKey: "saveTheScore")
    }

    func loadData () {
        if let loadPlayerName:String = UserDefaults.standard.value(forKey: "saveTheName") as? String {
            playerName = loadPlayerName
        }

        if let loadTheScore:Int = UserDefaults.standard.value(forKey: "saveTheName") as? Int {
            playerScore = loadTheScore
        }
    }
}

【问题讨论】:

  • 尝试通过 Interface Builder 进行操作。
  • 您需要在问题中包含完整的错误消息(作为文本),并且需要指出导致崩溃的确切行。
  • 尝试添加之前的自我。像这样:self.performSegue(withIdentifier: ”toLeaderboard”, sender: self)
  • @Putte 我刚刚尝试过,但仍然遇到同样的错误
  • 1.) 仔细检查您的连接。右键单击两个视图控制器,并在需要时删除。 —— 2.) 再次检查标识符。确保你拼写正确。 3.) 尝试更改演示文稿。例如,模态

标签: ios swift


【解决方案1】:

更新:视图控制器中有一个插座“toLeaderboard”没有连接或使用,所以我删除了它,现在代码很好

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-10
    • 1970-01-01
    • 2021-09-14
    • 2015-09-28
    • 2013-07-21
    • 2016-11-04
    相关资源
    最近更新 更多