Почему я получаю EXC_BREAKPOINT при переборе всех узлов в сцене? - PullRequest
0 голосов
/ 13 декабря 2018

Следующая функция вызывается, когда пользователь нажимает кнопку.

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 голосов
/ 13 декабря 2018

Может случиться так, что в вашем первом операторе foreach node.children равен nil, и вызов foreach для него вызывает исключение.Попробуйте вставить этот код в оператор if и проверьте, равен ли он нулю.

...