从SKNode成员中删除所有孩子时如何制作例外?

时间:2016-02-15 13:12:55

标签: swift sprite-kit

我正在寻找一种从父节点中删除所有子节点时生成异常的简单方法。

喜欢:"删除Tom,Ted,Tony,。但保持丽莎"

2 个答案:

答案 0 :(得分:4)

您可以过滤name属性与Lisa不同的节点,然后将其删除

self.children.filter { $0.name != "Lisa" }.forEach { $0.removeFromParent() }

我怎样才能为过滤器添加更多名称? ..保持丽莎和汤姆?

let keepTheseNames = Set(["Lisa", "Tom"])

self.children.forEach {
    if let name = $0.name where !keepTheseNames.contains(name)  {
        $0.removeFromParent()
    }
}

答案 1 :(得分:1)

您可以使用filter方法,使用Swift尾随闭包语法:

var children = ["Tom", "Ted", "Tony", "Lisa"]
var filtered = children.filter { $0 == "Lisa" }
// Now filtered contains only "Lisa"