Ничего не делая в viewDidUnload
, вы сохраняете эти подпредставления вокруг, но не пропускаете их.
Утечка объекта все еще находится в памяти, но у вас нет возможности добраться до него (потому чтона него не осталось указателей).Эти подпредставления не просочились, потому что у вас все еще есть объект контроллера представления с указателями на подпредставления.Когда контроллер представления освобождается, он освобождает подпредставления, а затем они освобождаются, а не просачиваются.(Если сам контроллер представления пропущен, , тогда подпредставления также просочились.)
Однако вы должны выпустить подпредставления в viewDidUnload
, установив для свойств или переменных экземпляра значение nil
.Зачем?Система выгружает ваше представление и отправляет вам viewDidUnload
, когда памяти мало.Если вы ничего не делаете в viewDidUnload
, тогда вы сохраняете эти объекты подвидов, занимая память, когда они вам не нужны.