迅速。我如何获得node.children的类型?

时间:2016-08-17 11:25:11

标签: swift types sprite-kit children skspritenode

我将此作为我的代码:

for child in viewsArray[i].children {
    let childNode = child as! SKSpriteNode
    if childNode.color == UIColor.blackColor() && childNode.alpha == 1 {
        childNode.alpha = 0.5
    }
}

它给了我这个错误:

  

无法转换类型' SKCropNode' (0x1a04415a0)到' SKSpriteNode' (0x1a0441230)。

所以我的问题是如何在写let childNode = child as! SKSpriteNode之前检查孩子的类型,这样我可以避免这个错误?

2 个答案:

答案 0 :(得分:3)

如果你想在这里使用函数式编程,那就是代码

答案 1 :(得分:1)

怎么样:

for child in viewsArray[i].children {
    guard let childNode = child as? SKSpriteNode else { continue }
    if childNode.color == UIColor.blackColor() && childNode.alpha == 1 {
        childNode.alpha = 0.5
    }
}