Нужно ли устанавливать указатели на nil в Objective-C После выпуска?

Есть ли что-то не так, когда вы делаете что-то вроде

NSString * string = [ [ NSString alloc ] init ];
...
[ string release ];

или есть какое-либо значение (отличное от передового опыта) при добавлении

string = nil;

?

Ответ 1

Не нужно, но хорошая практика. Если вы случайно не указали это после выпуска, могут произойти плохие вещи, но в Objective C нет никакого вреда в ссылке на нуль.

Ответ 2

Установка переменной экземпляра в nil более полезна в многопоточном приложении, чем однопоточное, поскольку с несколькими потоками вы не всегда можете гарантировать, что переменная экземпляра будет считана только до ее выпуска.

Обычно я не разбираюсь в однопоточных приложениях, если только не существует другой убедительной причины.

Ответ 3

Objective-C действительно то же самое, что и C с фантастическим препроцессором.

Установка указателя на nil в Objective-C не влияет на то, что когда-то указывалось этим указателем.