SceneDidLoad вызывается дважды?

Использование Xcode 8, swift 3, и я создаю приложение iOS, используя шаблон игры с включенными объектами. Я заметил, что я видел двойной node счетчик для некоторых начальных спрайтов, хотя я использовал только addChild один раз.

Я добавил

override func sceneDidLoad() {
print(#function) ... } 

для кода, и не знаю, почему это вызывается дважды.

файл журнала...

2016-09-20 10:21:31.482 MMDecon1[3295:791435] SKUtil.m: MGGetBoolAnswer is not available in the simulator.
sceneDidLoad()
sceneDidLoad()

Я добавил

override func didMove(to view: SKView) {..} 

и введите здесь код инициализации как временное исправление.

Знает ли кто-нибудь, почему сценарийDidLoad() запускается дважды с кодом игры для игры по умолчанию с использованием сущностей?

Ответы

Ответ 1

Обычно sceneDidLoad вызывается только один раз. Однако, если отправлено предупреждение о памяти, UIViewController освобождает свою сцену и устанавливает ее в nil, если контроллер вида не отображается. В следующий раз, когда появится сцена, контроллер просмотра перезагрузит сцену и снова вызовет сценуDidLoad.

Вы должны предположить, что sceneDidLoad можно вызвать несколько раз.

Реализовать didReceiveMemoryПродолжить и записать или установить точку останова, чтобы увидеть, что происходит.