Необходимо ли устанавливать нулевые указатели в Objective-C после выпуска?

StackOverflow https://stackoverflow.com/questions/803531

  •  03-07-2019
  •  | 
  •  

Вопрос

Есть ли что-то неправильное в том, чтобы сделать что-то вроде

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

или есть ли какая-либо ценность (кроме передовой практики) в добавлении

string = nil;

?

Это было полезно?

Решение

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

Другие советы

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

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top