SceneKit: отложенное освобождение объектов UIViewController / SCNNode после UINavigationController Unwind - PullRequest
0 голосов
/ 05 марта 2019

Я использую UINavigationController, который открывает GameViewController (в основном UIViewController с SCNView), который представляет SCNScene, который показывает некоторые объекты SCNNode (скажем, несколько сотен).

Когда я возвращаюсь назад в моем контроллере навигации, я вызываю метод unload () в didMove (toParentViewController :), где я освобождаю все мои объекты (то есть устанавливаю их равными nil).Для всех объектов SCNNode я также установил текстуру (материал) на ноль и удалил их из родительского узла, прежде чем установить их на ноль.Фактически, все объекты SCNNode должны быть освобождены ARC из-за этой процедуры.

Однако проблема заключается в том, что объекты SCNNode и GameViewController не освобождаются при переходе назад (хотя узлы, очевидно, удаляются со сценына данный момент), а точнее примерно через 10 секунд (что я вижу по выводу на печать в методе deinit ()).В течение этих 10 секунд элементы управления пользовательского интерфейса в родительском представлении не отвечают.Что здесь не так с ARC?

Я был бы благодарен за любой намек на то, как я могу освободить объекты SCNNode сразу после перехода к родительскому представлению, так как я потратил несколько дней на отладку этой проблемы.

...