Swift 带有类数组的SKNode子节点
我试图编写一个方法来查找属于某个特定类的SKNode的子级,但这里出现了一个EXC错误 有人知道为什么会这样吗Swift 带有类数组的SKNode子节点,swift,sprite-kit,Swift,Sprite Kit,我试图编写一个方法来查找属于某个特定类的SKNode的子级,但这里出现了一个EXC错误 有人知道为什么会这样吗 import SpriteKit extension SKNode { func children(#klasses: [AnyClass]) -> [SKNode] { var matchedNodes = [SKNode]() for child in children as [SKNode] { for klass in klasses {
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_指令(代码=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
}
}
这管用!我会支持你的答案,但显然我需要一个15 lol的声誉-谢谢!