Как говорит Тоби в своем ответе, deinit вызывается непосредственно перед освобождением объекта.
Объект освобождается, когда на него больше нет сильных ссылок.(Никто больше не владеет объектом.)
Чтобы ответить на ваш конкретный вопрос, вам нужно посмотреть, как создается ваш контроллер представления и кто владеет им.
В последнее время я мало занимался разработкой для Mac, поэтому мне немного не по себе жизненный цикл контроллера View, но я вспоминаю, как он работает:
Если у вас есть только одно приложениеокно, это владелец контроллера представления, и окно никогда не закрывается, это означает, что контроллер представления никогда не будет освобожден.
Если вы выйдете из приложения, я не думаю, что система разрушит вашу иерархию окон раньшеЗавершение работы приложения (если только вы не являетесь приложением на основе документов, и в этом случае приложению будет приказано закрыть все окна документов перед выходом.)