На самом деле, я бы поместил релиз в viewDidUnload, кроме dealloc.
Невыполнение этого требования может привести к утечке памяти в случае, если ваше приложение получит предупреждение о памяти и все его представления будут освобождены; действительно, в этом случае представление будет загружаться еще раз, когда это необходимо, и это приведет к повторному выделению для вас индикатора активности без освобождения предыдущего экземпляра.
Имейте в виду, что, согласно комментарию ниже, освобождение в viewDidUnload не означает, что вы можете пропустить освобождение в dealloc. Это по двум причинам: если вы используете iOS
2.x нет viewDidUnload; более того, когда ваш контроллер представления будет выпущен нормально, viewDidUnload не будет вызываться. Таким образом, предложение выполняется в обоих местах, и не забудьте установить значение ivar на ноль после выполнения этого.
В этом случае было бы лучше выпустить, как вы делаете, но тогда, по крайней мере, установите значение ivar равным nil, в противном случае вы могли бы думать, что вы все еще владеете объектом.
Если вы использовали свойство retain и сделали назначение следующим образом:
Self.activityIndicator = ....
Это было бы не так, тем не менее, я думаю, что освобождение в viewDidUnload того, что вы создали в viewDidLoad, является лучшей практикой в целом.
Здесь какие документы о viewDidUnload.