Release просто восстанавливает память, но значение указателя не изменяется; он по-прежнему содержит значение, но указывает на мусор.
Вот почему многие люди обнуляют свой указатель после его отпускания:
[allAvailableServices release], allAvailableServices = nil;
В Objective-C безопасно отправлять сообщение на ноль, но отправка сообщения на освобожденный объект может привести к сбою приложения (обычно с EXC_BAD_ACCESS)
Обратите внимание, что я выпустил объект, прежде чем установить его на ноль. Если вы сделаете это наоборот, вы потеряли указатель, на который отправляете сообщение о выпуске, и таким образом вы утекли объект.