在Swift中调用父级函数

zee*_*ple 1 parent sprite-kit swift

在Swift中,我试图在节点的父节点上调用一个函数,如下所示:

self.parent.unhighlightAllCheckers()
Run Code Online (Sandbox Code Playgroud)

没工作.我认为这是因为子节点可能不会隐式知道父节点是什么类型的对象,所以我尝试一个显式的转换:

let myParent: Gameboard = Gameboard(self.parent)
myParent.unhighlightAllCheckers()
Run Code Online (Sandbox Code Playgroud)

也行不通.我认为这应该简单得多.你如何调用父节点的功能?

Min*_*Min 6

if let myParent = self.parent as? Gameboard {
    myParent.unhighlightAllCheckers()
}
Run Code Online (Sandbox Code Playgroud)

你没有明确的演员表,因为你没有在下一行使用它.

你没有通过调用构造函数来实际创建一个新的Gameboard.转换将使用as运算符.

更重要的是,当您复制/转换/确定使用您刚创建的变量时.

如果让...作为?Swift中的成语非常棒,手册中有更多的例子.https://developer.apple.com/library/prerelease/mac/documentation/Swift/Conceptual/Swift_Programming_Language/TypeCasting.html