gpt4 book ai didi

ios - Swift: fatal error :在解包可选值时意外发现 nil (SpriteKit)

转载 作者:行者123 更新时间:2023-11-30 14:18:29 25 4
gpt4 key购买 nike

我刚刚开始学习使用 SpriteKit 编写 iOS 游戏,并且我是编程新手(在此之前我只使用过 Java 和 Swift 进行过编程)。我从网上找到的教程开始。我正在尝试添加“游戏结束”场景,但不断收到错误

"Thread 1:EXC-BAD_INSTRUCTION(code=EXC_I386_INVOP,subcode=0x0)"

当我声明 gameOverLabel 常量时。它可以编译,但一旦球击中屏幕底部,就会在运行时崩溃,这应该会触发“游戏结束”屏幕。

import SpriteKit

let gameOverLabelCategoryName = "gameOverLabel"

class GameOverScene: SKScene {
var gameWon: Bool = false {

didSet {
let gameOverLabel = childNodeWithName(gameOverLabelCategoryName) as! SKLabelNode
gameOverLabel.text = gameWon ? "Game Won" : "Game Over"
}
}
override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) {
if let view = view {
let gameScene = GameScene.unarchiveFromFile("GameScene") as! GameScene
view.presentScene(gameScene)
}
}
}

此外,如果有人对我可以去了解更多关于 SpriteKit 的地方、文章或视频提出建议,我将不胜感激,因为我发现的大多数内容都是用 Objective-C 编写的,而且我正在在 Swift 中执行此操作。

Here是我一直在遵循的教程..

最佳答案

如果具有该名称的节点不存在,childNodeWithName 将返回 nil。您的代码没有检查这种可能性(as!假设它不为零并且属于适当的类型),因此这导致了崩溃。

本教程要求您在创建此代码之前创建此“gameOverLabel”节点并为其命名。检查您是否正确执行了该操作,并且没有错误命名(例如区分大小写)。

关于ios - Swift: fatal error :在解包可选值时意外发现 nil (SpriteKit),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30826904/

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