swift - 为什么在 Sprite-kit 中创建 SKLabelNode 会导致“线程 1:致命错误:在隐式展开可选值时意外发现 nil”
问题描述
我正在尝试SKLabelNode
在 SpriteKit 中创建一个分数标签,它导致项目因以下错误而崩溃:
线程 1:致命错误:在隐式展开可选值时意外发现 nil
我尝试了许多替代方法,但都会导致相同的错误。这是代码的基本版本。
class LevelScene: SKScene {
// Coin Label + Constants
var coinLabel: SKLabelNode!
var currentCoins = 0 {
didSet {
coinLabel.text = ":\(currentCoins)"
}
}
override func didMove(to view: SKView) {
// Coin Label
coinLabel.text = ":0"
coinLabel.position = CGPoint(x: 0, y: 0)
addChild(coinLabel)
}
}
解决方案
尝试首先像这样创建一个 SKLabelNode 对象
class LevelScene: SKScene {
// Coin Label + Constants
var coinLabel: SKLabelNode!
var currentCoins = 0 {
didSet {
coinLabel.text = ":\(currentCoins)"
}
}
override func didMove(to view: SKView) {
// Coin Label
coinLabel = SKLabelNode() // Here you initialize the SKLabelNode
coinLabel.text = ":0"
coinLabel.position = CGPoint(x: 0, y: 0)
addChild(coinLabel)
}
}
发生此错误是因为您尝试在初始化之前访问标签。
希望这有帮助。
推荐阅读
- c - Cannot follow tutorial (https://developer.gnome.org/anjuta-build-tutorial/stable/create-autotools.html.en)
- json - Swift 4 - 无法使用“(可编码)”类型的参数列表调用“编码”
- python - PYSPARK:CX_ORACLE.InterfaceError:不是查询
- python - SimpleITK not working with any data type, be it 3D or 2D
- mysql - 基于通配符替换字符串的 SQL 查询
- r - R比较来自一个数据帧的值与来自另一个数据帧的值
- apache - 使用flume在两个单独的表中写入hive仓库目录中的数据
- javascript - 动态改变 SVG 光标
- swift - 为什么我的操场在 NSRange() 上崩溃
- r - Sum of the multiplication of all columns of one matrix (n-by-m) with another matrix (n-by-n)