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