Указатель - это локальная переменная, представляющая адрес в памяти, а не объект. Там нет ничего, чтобы выпустить.
Например:
int i = 1;
NSSomething *object = [[NSSomething alloc] init];
Теперь у вас есть 2 локальные переменные в стеке, одна типа int
, а другая типа pointer to NSSomething
. У вас также есть новый экземпляр NSSomething
в куче. Если вы просто return
сейчас, ваши переменные i
и object
выйдут из области видимости и исчезнут, но экземпляр NSSomething
в куче будет жить вечно. Чтобы избежать этого, вы должны release
(или autorelease
) сделать это перед вами return
из функции.