2012-05-18 79 views

Respuesta

9

Es seguro asumir que todas las variables de instancia se inicializan a 0.

Sin embargo, esto no es el caso a nivel local/método de ámbito variables que, si no se ha iniciado manualmente, redireccionen a chatarra.

Para referencia futura, como Rob Napier points out, esto se puede encontrar en the documentation for + (id)alloc:

La variable isa instancia de la nueva instancia se inicializa a una estructura de datos que describe la clase; la memoria para todas las otras variables de instancia se establece en 0.

+3

sólo para proporcionar la referencia, lea la documentación de '+ alloc'. Específicamente, todos los ivars excepto 'isa' se inicializan a 0, pero no deberías estar jugando con' isa' de todos modos. –

+1

Tenga en cuenta que los punteros de objetos automáticos _se_ de hecho se inicializan a 'nil' cuando se compilan bajo ARC. –

0

Me utilizan para inicializarlo explícitamente, principalmente debido a la trazabilidad y la legibilidad. Pero cuando nos fijamos en la Definición de BOOL, verá que NO no es más que un #define para 0. Por eso, supongo que puede esperar con seguridad que _test sea NO.

una muy buena publicación acerca de Boole y su manejo es Objective-C : BOOL vs bool

Cuestiones relacionadas