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Продолжить и записать или установить точку останова, чтобы увидеть, что происходит.