2009-10-18 5 views

Répondre

7

Cela dépend de l'endroit où la variable est stockée. Le langage spécifie que tous les objets sont mis à zéro sur alloc, ce qui signifie que tous les ivars seront remplis. Pour tout type primitif où le backing store est 0, il est parfaitement sûr. Par exemple:

@interface LGDemo : NSObject { 
    CGPoint point; 
    NSRect rect; 
} 
@end 

Il est tout à fait sûr de ne pas explicitement le point d'initialisation ou rect, après que l'objet est qu'ils alloc'ed seront {0.0, 0.0} et {0,0, 0,0, 0,0, 0,0} respectivement.

+0

qu'en est-il des primitives locales? Quels types sont sûrs, aucun? – willc2

+0

Vous voulez dire sur la pile? Il n'est pas garanti que les variables de pile soient remplies de zéro, vous devez les initialiser manuellement. –

+0

Juste pour être clair, il ne s'agit pas des types, mais de l'endroit où ils sont stockés. Type n'a rien à voir avec ça, sauf dans la mesure où 0 mémoire sauvegardée peut ou non être une valeur par défaut sensée. –

Questions connexes