Swift Error Фатальная ошибка: неожиданно обнаружен ноль при развертывании необязательного значения (lldb) - PullRequest
0 голосов
/ 25 июня 2019

Я пишу скрипт, в котором я прикрепляю переменную в gamescene.swift к спрайту в gamescene.sks.Я делал это раньше, но теперь получаю ошибку, которую не понимаю.

Понятия не имею, что здесь делать, поэтому, пожалуйста, пришлите помощь.

var p      = SKSpriteNode() // this is the declaration

ниже находится в didMoveTo ()

    p.name = "p"
           p = self.childNode(withName: "p") as! SKSpriteNode

Ошибка:

Fatal error: Unexpectedly found nil while unwrapping an Optional value
2019-06-25 12:50:45.259190-0700 Select[25918:1085668] Fatal error: Unexpectedly found nil while unwrapping an Optional value
(lldb)

***** Я обнаружил, что ошибки нет в этом скрипте, у меня были странные объявления в моем GameViewController

1 Ответ

0 голосов
/ 26 июня 2019

Ваш код сбой, потому что сцена не имеет дочернего узла с именем p и является узлом спрайта. Без дополнительной информации невозможно понять, почему в сцене нет дочернего узла p.

Если вы устанавливаете значение спрайта в своем коде как спрайт в файле SKS, убедитесь, что имя, которое вы указываете для self.childName, соответствует имени спрайта в файле SKS.

p = self.childNode(withName: "SpriteNameInSKSFile") as! SKSpriteNode

Если вы создаете спрайт в коде, вызовите функцию addChild, чтобы добавить спрайт в качестве дочернего элемента сцены.

self.addChild(p)

Кстати, вы должны использовать более описательное имя переменной, чем p.

...