Différence entre les int, NSInteger et NSUInteger
Quelle est la principale différence entre int
, NSInteger
et NSUInteger
en Objective-C?
Qui est le meilleur à utiliser dans une application, et pourquoi?
- Il n'y a pas une telle chose comme
NSInt
. - NSInteger pas NSInt ..
- Voir la documentation
Vous devez vous connecter pour publier un commentaire.
Dans de tels cas, vous risquez de faire un clic droit et aller à la définition:
La différence est pour les types abstraits et leurs associés de la taille du matériel. D'une manière que nous n'avons pas à vous soucier de la taille d'un int ou quelle que soit la taille du pointeur sur n'importe quel matériel particulier.
"C" est mauvais à ce, indiquant seulement qu'une longue est au moins aussi grand qu'un int, un int est "naturel" de l'entier de la taille du matériel (quoi que cela signifie), qu'un int est au moins aussi longtemps qu'un court--un (gros dégâts).
Cela semblait être une bonne idée à la fois en provenance Fortran, mais n'a pas d'âge bien.
On pourrait utiliser la POSIX définit, des choses comme uint32_t, int16_t, etc. Mais ce n'est pas la manière dont les grands un pointeur doit être sur n'importe quel matériel particulier soit.
Donc, si Apple définit le type de retour d'une NSUInteger vous utiliser et vous n'avez pas besoin de savoir si elle est de 16, 32 ou 64 bits de taille pour votre matériel particulier. (J'ai choisi ces valeurs out-of-the-air juste pour un exemple).
Comme vous pouvez le voir dans @Bastian la taille réelle dépend du matériel.
La documentation répond à la "lettre de la question", mais ne pas fournir une compréhension du "pourquoi"?