我有一个结构,Trajectory。
struct Trajectory {
var invisibleBall: SKSpriteNode!
var count = Int()
var copiedNodes = Array<SKSpriteNode>()
}
当我尝试使用Trajectory中的任何变量时会出现此错误,Instance member 'invisibleBall' cannot be used on type 'GameScene.Trajectory'
为什么会这样。之前我曾经多次使用结构。
Trajectory.invisibleBall = self.childNode(withName: "//invisibleBall")
//this is where i get the error
答案 0 :(得分:2)
那是因为您没有从Trajectory
创建实例,您应该这样做:
let trajectory = Trajectory()
trajectory.invisibleBall = self.childNode(withName: "//invisibleBall")
或者,如果您非常确定要直接在结构中使用它,那么您应该将invisibleBall
声明为 static 属性:
struct Trajectory {
static var invisibleBall: SKSpriteNode!
var count = Int()
var copiedNodes = Array<SKSpriteNode>()
}
然后你就可以:
Trajectory.invisibleBall = self.childNode(withName: "//invisibleBall")
答案 1 :(得分:1)
您需要初始化Trajectory
对象。因此,您只需将代码更改为:
let trajectory = Trajectory()
trajectory.invisibleBall = self.childNode(withName: "//invisibleBall")