¿Cuál es el valor predeterminado de una BOOL
variable en Objective-C?
94
¿Cuál es el valor predeterminado de una BOOL
variable en Objective-C?
No hay un valor predeterminado si escribe
-(void)somemethod {
BOOL x; // <--- no default value
Se inicializa como basura.
Sin embargo, para un BOOL
ivar , se inicializará en NO
, ya que toda la instancia se rellena con 0 en la inicialización.
(Nota: cuando ARC está habilitado, los punteros de objetos locales siempre tendrán un valor predeterminado nil
, pero las variables locales de tipos que no son de objeto como BOOL todavía se inicializan como basura. Consulte ¿ Variables locales establecidas en nil? (Objective-C)) .
NO
como se mencionó anteriormente. Creo que te refieres a var.Hice algunos experimentos por mi cuenta usando Xcode 5.1, OS X Mavericks 10.9.4. Para aquellos que no saben, ALog es un NSLog modificado. De todos modos, el primer experimento fue usarlo
isLandscape
como una variable pública, con@synthesize
, para acceder al controlador de vista principal (que se muestra a continuación). El segundo experimento no@synthesize
usé y yo, obviamente, solíaself.isLandscape
obtener el mismo resultado en la consola. La salida de la consola está debajo de mi código. El tercer experimento usó 'isLandscape' como una variable local dentro de un método.Estos resultados son de los dos primeros experimentos ...
En el TERCER EXPERIMENTO 'isLandscape' ya no era una propiedad. Lo configuré para que sea una variable local con resultados interesantes:
Estos resultados son del tercer experimento ...
Supongo que las propiedades las inicializo yo o Xcode automáticamente, pero las variables locales no obtienen ningún valor. Aun así, observe que la variable local [Línea 164] no es SÍ o NO pero no es nula. Supongo que es el valor de basura (aleatorio) con el que no puedes contar. Espero que esto ayude a la próxima persona. Aprendí algo pero espero con ansias los comentarios. ¡Gracias y buena suerte!
fuente