За последние несколько лет я делал для себя забавные маленькие игры, все, что я знаю о кодировании, прочитано в Интернете, поэтому я очень неопытен. Я недавно начал работать со SceneKit и не получаю повторного исправления ошибок доступа. Все они, кажется, приходят на мои if let n = scene.rootnode.childnode
звонки, которые вы можете увидеть ниже, и я не уверен почему. Я знаю, что узел, который я вызываю, существует и имеет правильное имя. Я могу запустить один и тот же сценарий 5 раз подряд, и 2 из них приведут к ошибке неверного доступа. Точный код ошибки - EXC_BAD_ACCESS (код = EXC_I386_GPFLT). Я прочитал несколько вещей об этой ошибке и попытался с помощью команды K очистить консоль, но это не помогло. Я получаю эту ошибку как на симуляторе, так и на реальном устройстве. Любой совет или знания будут оценены. Спасибо.
@objc func waveTick() {
let teamDef = -1*teamInv + 3
var num1 = 0
let nodesCur = actNodes[teamInv-1]
while (num1 < nodesCur.count){
num1 += 1
if let n = scene.rootNode.childNode(withName: "NODE" + String(nodesCur[num1-1]), recursively: false) as? HelpNode {
if (n.tick == tick && n.invador) {
enemyBrain(enemy: n)
}
}
}