gpt4 book ai didi

ios - 从 GameViewController 调用 GameScene 方法 : Thread 1 exc_bad_instruction (code=exc_i386_invop subcode=0x0)

转载 作者:行者123 更新时间:2023-11-30 13:56:03 25 4
gpt4 key购买 nike

我对 Swift 很陌生,遇到以下问题。

我的 GameViewController.swift 中的这个按钮:

var currentGame : GameScene!
currentGame = GameScene()


@IBAction func restartGame(sender: UIButton) {
currentGame.loadView()
}

我的 GameScene.swift 中的这个函数:

loadView(){
ScoreLabel = UILabel(frame: CGRect(x: 0, y: 0, width: 150, height: 100))
ScoreLabel.center = (self.view?.center)!
ScoreLabel.text = "\(currentScore)"
ScoreLabel.textColor = SKColor.whiteColor()
ScoreLabel.textAlignment = NSTextAlignment.Center
ScoreLabel.font = UIFont(name: "GROBOLD", size: 80)

HighScoreLabel = UILabel(frame: CGRect(x: 7, y: -10, width: 300, height: 100))
HighScoreLabel.text = "High Score: \(highScore)"
HighScoreLabel.textColor = SKColor.whiteColor()
HighScoreLabel.textAlignment = NSTextAlignment.Left
HighScoreLabel.font = UIFont(name: "GROBOLD", size: 30)
self.view?.addSubview(ScoreLabel)
self.view?.addSubview(HighScoreLabel)
}

在 ScoreLabel.center = (self.view?.center)!

Xcode 告诉我线程 1 exc_bad_instruction (code=exc_i386_invop subcode=0x0)

我一直在谷歌上搜索此错误和任何相关主题,但没有成功。

我不清楚这些答案或不相关。

有人可以解释一下我的代码有什么问题吗?

看来我的 self.view 不存在,我不明白为什么。

非常感谢!

最佳答案

ScoreLabel.center = (self.view?.center)!

此时大概 self.view 为零。最后有一个 ! ,它向 Swift 保证你知道有一个带有中心的 View 。既然它正在崩溃,也许这个保证是基于一个错误的假设。

名为 loadView 的方法可能应该执行某些操作来加载 View ,对吧?文档说“将该层次结构的 Root View 分配给 View Controller 的 View 属性。”

所以这个 loadView 方法应该包含类似的内容

super.loadView()

让 View 层次结构滚动起来。

关于ios - 从 GameViewController 调用 GameScene 方法 : Thread 1 exc_bad_instruction (code=exc_i386_invop subcode=0x0),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33608181/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com