我有一个名为Ball
的自定义类和GameScene.sks
中的精灵:
GameScene.sks:
var ball:Ball!
override func didMove(to view: SKView) {
ball.setUp()
addChild(ball)
}
Ball.swift:
import Foundation
import SpriteKit
class Ball: SKSpriteNode {
func setUp() {
self.texture = SKTexture(imageNamed: "ball")
}
}
但它会抛出此错误:Thread 1: Fatal error: Unexpectedly found nil while unwrapping an Optional value
有人可以帮忙吗?感谢
答案 0 :(得分:1)
问题是,您实际上从未为ball
实际分配值,这是一个隐式解包的可选项,因此当您尝试使用ball.setUp()
访问它时,其默认值为nil
被打开的力量。
您应该只调用其指定的初始化程序texture
来实例化该节点,而不是直接修改SKSpriteNode
子类的Ball(imageNamed: "ball")
属性。
因此,相应地修改GameScene.sks
:
override func didMove(to view: SKView) {
ball = Ball(imageNamed: "ball")
addChild(ball)
}