Pregunta

Tal vez mi memoria se haya vuelto completamente loca, pero creo que recuerdo que declarar punteros sin inicializarlos hizo que apunten a cero. Pero recientemente este no parece ser el caso. ¿Siempre ha sido así? ¿O tiene algo que ver con la configuración del compilador?

¿Fue útil?

Solución

Las variables de instancia de los objetos se inicializan en nil en alloc (todo el objeto está en cero).

Editar: Además, las variables de almacenamiento global y estático se inicializan a cero (6.7.8 10 de C99 Standard , gracias a Derek por señalarlo).

Las variables de la pila local no se inicializan automáticamente. Esto no cambió en la historia conocida.

Otros consejos

De Transición a las Notas de versión de ARC :

  

Las variables de pila se inicializan con nil

     

Usando ARC, las variables de pila fuertes, débiles y de liberación automática se inician ahora implícitamente con nil . Por ejemplo:

- (void)myMethod {
    NSString *name;
    NSLog(@"name: %@", name);
}
     

registrará null para el valor del nombre en lugar de tal vez fallar.

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