doc sur NSInteger et les autres
Philippe49
Membre
On voit apparaà®tre des NSInteger, NSUInteger, CGFloat, ....
Je suis sur la doc 'The objective-C 2.0 Programming Language" et nil comme info ?
Je suis sur la doc 'The objective-C 2.0 Programming Language" et nil comme info ?
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Maintenant, tu ne peux plus compiler pour PPC ou Intel, c'est systématiquement du code UB, tu peux en revanche choisir si tu compiles pour un 32 bits ou pour un 64 bits.
Ces types NSInteger, NSUInteger, CGFloat, etc. permettent de s'assurer que les nombres seront à la bonne taille selon l'architecture.
Par exemple, en 32 bits, un CGFloat correspond à un simple float, en 64 bits celui-ci correspond à un double. De même dans le cas des NSInteger et NSUInteger.
Il y a d'autres types de ce .. type ?
Exactement.
À priori non, en tout cas, en tant que simple définition de type de base selon les variables de précompilations, il n'y a que ça. Après tout c'est l'essentiel. Qu'est-ce qu'on a comme type finalement ? Caractères, Entiers et Flottants. Les caractères sont définis depuis la nuit des temps par char, unichar ou wchar_t. Et pour les entiers et flottants on a une uniformisation grâce à Leopard avec NSUInteger NSInteger et CGFloat.
L'uniformisation se fait aussi avec les types complexes. Du genre, au lieu d'avoir un type CGRect et un NSRect, maintenant l'un est définit par rapport à l'autre, mais ça ce n'est valable que si tu compiles pour Leopard uniquement.
Donc grosso-modo on a :
NSRect = CGRect, NSSize = CGSize, NSPoint = CGPoint, et donc ces types sont interchangeables, ce qui est un grand soulagement, mais uniquement sous Leopard.