Ответ 1
Не нужно, но хорошая практика. Если вы случайно не указали это после выпуска, могут произойти плохие вещи, но в Objective C нет никакого вреда в ссылке на нуль.
Есть ли что-то не так, когда вы делаете что-то вроде
NSString * string = [ [ NSString alloc ] init ];
...
[ string release ];
или есть какое-либо значение (отличное от передового опыта) при добавлении
string = nil;
?
Не нужно, но хорошая практика. Если вы случайно не указали это после выпуска, могут произойти плохие вещи, но в Objective C нет никакого вреда в ссылке на нуль.
Установка переменной экземпляра в nil более полезна в многопоточном приложении, чем однопоточное, поскольку с несколькими потоками вы не всегда можете гарантировать, что переменная экземпляра будет считана только до ее выпуска.
Обычно я не разбираюсь в однопоточных приложениях, если только не существует другой убедительной причины.
Objective-C действительно то же самое, что и C с фантастическим препроцессором.
Установка указателя на nil в Objective-C не влияет на то, что когда-то указывалось этим указателем.