Используя IBOutlet, переменные открываются для подключения в Интерфейсном Разработчике и распределяются при инициализации контроллера представления. Таким образом, они должны быть освобождены и освобождены, поскольку контроллер представления выгружен и освобожден. Поскольку большинство IBOutlets сохраняют свойства UI *, это необходимо.
Присвоение nils переменным технически не освобождает. Это просто последнее состояние, в котором сохраняется счетчик 0 перед тем, как его фактически освободить.
Также обратите внимание, что на них ссылаются, используя self. Это означает, что ссылки из контроллера представления становятся нулевыми, а не выделения.
Итак, в заключение, свойства IBOutlet должны быть освобождены в dealloc ()
(Хотя я вполне уверен, кто-то другой может дать 100% правильный ответ на это.)