Quelle est la valeur par défaut d'une BOOL
variable en Objective-C?
94
Quelle est la valeur par défaut d'une BOOL
variable en Objective-C?
Il n'y a pas de valeur par défaut si vous écrivez
-(void)somemethod {
BOOL x; // <--- no default value
Il est initialisé à garbage.
Cependant, pour un BOOL
ivar , il sera initialisé à NO
, car toute l'instance est remplie avec 0 à l'initialisation.
(Remarque: lorsque ARC est activé, les pointeurs d'objets locaux auront toujours une valeur par défaut nil
, mais les variables locales de types non-objet comme BOOL sont toujours initialisées à garbage. Voir Variables locales définies sur nil? (Objective-C) .)
NO
comme mentionné ci-dessus. Je pense que tu veux dire var.J'ai fait mes propres expériences en utilisant Xcode 5.1, OS X Mavericks 10.9.4. Pour ceux qui ne connaissent pas ALog est un NSLog modifié. Quoi qu'il en soit, la première expérience a été d'utiliser
isLandscape
comme variable publique, avec@synthesize
, pour être accessible par le contrôleur de vue parent (affiché ci-dessous). Deuxième expérience n'a pas utilisé@synthesize
et moi, évidemment, utiliséself.isLandscape
pour obtenir le même résultat dans la console. La sortie de la console est en dessous de mon code. La troisième expérience a utilisé 'isLandscape' comme variable locale dans une méthode.Ces résultats sont issus des deux premières expériences…
Dans la TROISIÈME EXPÉRIENCE, «isLandscape» n'était plus une propriété. Je l'ai défini comme une variable locale avec des résultats intéressants:
Ces résultats proviennent de la troisième expérience…
Je suppose que les propriétés sont initialisées automatiquement par moi ou Xcode, mais les variables locales n'obtiennent aucune valeur. Même ainsi, regardez la variable locale [Ligne 164] n'est pas OUI ou NON mais elle est non nulle? Je suppose que c'est la valeur des déchets (aléatoire) sur laquelle vous ne pouvez pas compter. J'espère que cela aidera la prochaine personne. J'ai appris quelque chose mais j'attends avec impatience les commentaires. Merci et bonne chance!
la source