【发布时间】:2019-05-10 12:07:13
【问题描述】:
我有一个场景,其中包含许多子类 SKNode。我正在尝试访问每个子节点的方法,但收到错误“'SKNode' 类型的值没有成员'[成员名称]”。
Xcode 10.2 上的所有 Swift 5(如果相关?)。
import SpriteKit
class GameScene: SKScene {
override func didMove(to view: SKView) {
let slim = NamedNode(name: "Slim Shady")
let snoop = NamedNode(name: "Snoop Dog")
let shaggy = NamedNode(name: "Shaggy")
self.addChild(slim)
self.addChild(snoop)
self.addChild(shaggy)
for child in self.children {
child.whatsMyName()
// ERROR: Value of type 'SKNode' has no member 'whatsMyName'
}
}
}
class NamedNode: SKNode {
var standup = false
init(name: String) {
super.init()
self.name = name
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
func whatsMyName() {
print("My name is ", name as Any)
if self.name == "Slim Shady" {
standup = true
}
}
}
如何从 Scene.children 数组中访问这些方法?有可能还是我应该改变机智?
谢谢!
【问题讨论】:
-
你怎么确定所有场景的孩子都是
NamedNodes?这会永远是真的吗?