¿Es necesario establecer los punteros a cero en Objective-C después del lanzamiento?

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

  •  03-07-2019
  •  | 
  •  

Pregunta

¿Hay algo de malo en hacer algo como

  

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

o hay algún valor (que no sea la mejor práctica) al agregar también

  

string = nil;

?

¿Fue útil?

Solución

No es necesario, pero buena práctica. Si tuvieras que hacer una referencia involuntariamente después del lanzamiento, podrían ocurrir cosas malas, pero en el Objetivo C no hay ningún daño en hacer referencia a un nulo.

Otros consejos

Establecer una variable de instancia en nil es más útil en una aplicación de múltiples subprocesos que en una sola hebra, ya que con múltiples subprocesos no siempre se puede garantizar que una variable de instancia solo se lea antes de está publicado.

Generalmente no me molesto en las aplicaciones de un solo hilo, a menos que haya alguna otra razón convincente.

Objective-C es realmente lo mismo que C con un preprocesador elegante.

Establecer un puntero a cero en Objective-C no tiene ningún efecto en lo que alguna vez apuntó ese puntero.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top