为什么在遍历场景中的每个节点时都得到EXC_BREAKPOINT?

时间:2018-12-13 02:04:32

标签: swift sprite-kit

用户单击按钮时将调用以下函数。

func wipeScreen() {
    removeGestureRecognizers()
    scene?.children.forEach({ (node) in
        node.children.forEach({ (childOfNode) in
            childOfNode.removeFromParent()
        })
        node.removeFromParent()
    })
}

除非按得非常快(每秒几次),否则它会按预期工作

当我执行此按钮混搭以重现该错误时,我得到了臭名昭著的消息:

  
    

线程1:EXC_BREAKPOINT(代码= 1,子代码= 0x106667814)

  

特别是在线阅读scene?.children.forEach({ (node) in

如果任何人有想法我可以解决这个问题,将不胜感激!

1 个答案:

答案 0 :(得分:0)

在您的第一个foreach语句中,node.children为nil并在其上调用foreach可能导致异常。尝试将代码放入if语句中,并检查其是否为零。