Установка указателя на ноль не освобождает память, на которую он указывает.
Когда вы делаете что-то вроде
self.pointer = nil;
как правило, свойство имеет атрибут retain. В этом случае установка свойства равным nil косвенно вызовет
[pointer release];
pointer = nil;
В случае методов контроллера представления, viewDidLoad вызывается, когда ваше представление загружено, либо из кончика, либо программно. Точнее, он вызывается сразу после вызова -loadView. Вам не нужно вызывать loadView вручную, система сделает это. Метод viewDidUnload вызывается в случае предупреждения памяти, и представление вашего контроллера представления не на экране. Впоследствии loadView и viewDidLoad будут вызываться снова по требованию.
Метод dealloc, как обычно, вызывается, когда счетчик сохранности вашего объекта достигает 0.