具有 类 数组的 SKNode 子节点

SKNode children with array of classes

我正在尝试编写一种方法来查找属于特定 class 的 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
    }
}