我正在迭代SKNode的节点。当我打印属于bgNode的所有子节点时,我得到了我正在寻找的所有名称(例如,包含“红色”的名称)。
然而,当这段代码执行时,程序退出,我得到:EXC_BREAKPOINT,即使我没有把它放在那里。它通常会突出显示child.name?.contains(redred)但如果它返回的全部是Bool值,那为什么会发生这种情况呢?
for child in bgNode.children {
if (child.name?.contains("red"))! {
let popUp = SKAction.moveBy(x: 0, y: 20, duration: 1.0)
child.run(SKAction.repeatForever(SKAction.sequence([wait])))
}
}
答案 0 :(得分:1)
试试这个:
if let name = child.name, name.contains("red") {
...
}
它通常会突出显示child.name?.contains("red")但如果它返回的全部是Bool值,那为什么会发生这种情况?
发生这种情况是因为child.name?
可能为零,之后您会尝试强制解包它:child.name?.contains("red")!
- 可能是(nil)!
,这会导致崩溃