Это длительная дискуссия о том, необходимо ли устанавливать указатель на nil
после освобождения, но я считаю, что это хорошая идея.
После того, как объект отпущен, указатель, который вы держите на нем, все еще указывает на то же место. Если в вашем выпуске счетчик удержаний был равен 0, то объект будет освобожден. Если вы попытаетесь отправить сообщение освобожденному объекту, вы получите ошибку EXC_BAD_ACCESS. Однако отправка сообщения указателю после того, как ему присвоено значение nil
, не приведет к ошибке - оно просто ничего не сделает.
Другая сторона аргумента в том, что если вы отправляете сообщение об освобожденном объекте, полезно знать об этом и исправлять свой код, чтобы быть уверенным, что этого не произойдет.
В обоих лагерях есть умные люди.