最后一行有问题。我该如何解决这个问题?问题说''无法转换类型'字符串'的值预期参数类型' SKNode'。 ''这是我的代码:
import SpriteKit
let BallCategoryName = "ball"
class GameScene: SKScene {
let ball = childNodeWithName(BallCategoryName) as! SKSpriteNode
答案 0 :(得分:1)
您在对象初始化之前使用self
。
事实上写这个
let ball = childNodeWithName(BallCategoryName) as! SKSpriteNode
等于写这个
let ball = self.childNodeWithName(BallCategoryName) as! SKSpriteNode
但是在属性初始化期间,GameScene
的当前实例尚不存在!所以还没有self
。
这是一件好事,因为如果已编译允许此代码,它会在运行时崩溃,因为您ball
中没有Scene
节点(因为还没有场景) )。
我建议你
ballCategoryName
ballCategoryName
转换为存储属性 class GameScene: SKScene {
let ballCategoryName: String = "ball"
var ball: SKSpriteNode? {
return childNodeWithName(ballCategoryName) as? SKSpriteNode
}
}