我正在尝试编写一种方法来查找属于特定类的 SKNode 的子级 - 但我在这里遇到 EXC 错误
有人知道为什么会这样吗?
import SpriteKit
extension SKNode {
func children(#klasses: [AnyClass]) -> [SKNode] {
var matchedNodes = [SKNode]()
for child in children as [SKNode] {
for klass in klasses {
if child.isKindOfClass(klass) {
matchedNodes.append(child)
}
}
matchedNodes += child.children(klasses: klasses)
}
return matchedNodes
}
}
class Apple: SKNode {}
class Orange: SKNode {}
let apple = Apple()
let orange = Orange()
apple.addChild(orange)
let fruits = apple.children(klasses: [Apple.self, Orange.self])
错误:
执行被中断,原因:EXC_BAD_INSTRUCTION(代码=EXC_i386_INVOP,子代码=0x0)。
最佳答案
试试这段代码
extension SKNode {
func children(#klasses: [AnyObject]) -> [SKNode] {
var matchedNodes = [SKNode]()
for child in children as [SKNode]{
for klass in klasses {
if child.dynamicType === klass {
matchedNodes.append(child)
}
}
matchedNodes += child.children(klasses: klasses)
}
return matchedNodes
}
}
关于swift - 具有类数组的 SKNode 子级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28478506/