迭代后台节点+检查字符串时出现异常

时间:2017-05-10 16:41:27

标签: swift string

我正在迭代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])))
        }
    }

1 个答案:

答案 0 :(得分:1)

试试这个:

if let name = child.name, name.contains("red") {
    ...
}
  

它通常会突出显示child.name?.contains("red")但如果它返回的全部是Bool值,那为什么会发生这种情况?

发生这种情况是因为child.name?可能为零,之后您会尝试强制解包它:child.name?.contains("red")! - 可能是(nil)!,这会导致崩溃