Сначала я тоже так думал, но, видимо, это не так.
Метод viewDidUnload
фактически вызывается только тогда, когда контроллер представления получает предупреждение о памяти.
Тем не менее,представление будет освобождено, когда контроллер представления будет освобожден.
Итак, если вы выпускаете такие вещи, как выходы IB в viewDidUnload
, это хорошо, но вы также должны выпустить их в dealloc
,потому что viewDidUnload
не будет вызываться при нормальных обстоятельствах (то есть, если вы не получаете предупреждения памяти).
РЕДАКТИРОВАТЬ: чтобы освободить view
, вам просто нужно вызвать dealloc
на суперкласс UIViewController
в вашем dealloc
:
- (void) dealloc
{
// release your stuff, anything that you alloc or retain in your class
// then call `dealloc` on the super class:
[super dealloc];
}
в методе viewDidUnload
вам нужно только выпустить вещи, которые должны быть выгружены вместе с вашим представлением, обычно то, что вы подключили к IBOutlet
sв конструкторе интерфейсов.
- (void) viewDidUnload
{
// if the property was declared with the "retain" keyword, you can
// release it simply by setting it to nil like this:
self.myOutlet = nil;
}