2016-12-27 4 views
-2

J'ai un NSInteger qui n'utilise pas de pointeur et un NSNumber qui utilise un pointeur. Quelqu'un peut-il m'expliquer pourquoi c'est le cas? Tout ce que mon professeur a dit, c'est que le NSInteger est utilisé comme un alias de type mais je ne le connais pas encore.Pourquoi utiliser un pointeur dans un NSInteger mais pas dans un NSNumber?

Cette question posait une question directe demandant la raison pour laquelle il n'y avait pas de pointeur dans NSInteger; ne demande pas toutes les différences.

enter image description here

+2

Je pense que vous pouvez trouver la réponse ici (avec encore plus d'informations): http://stackoverflow.com/questions/1285098/whats-the-difference-between-nsnumber-and-nsinteger – kbunarjo

+0

vous remercie de la merveilleuse ressource –

Répondre

0

ours à l'esprit que l'objectif-C est C. Ainsi:

  • Un NSInteger est un scalaire , un haut-type de données C (un entier). [La taille réelle de cet entier dépend de l'architecture, 32 bits vs. 64 bits. Mais il s'agit toujours d'une forme d'entier C.]

  • Un numéro NS est un objet ; Les références d'objets Objective-C sont représentées par des pointeurs C.

+0

Okay parfait. Vous l'avez ...... parce que les pointeurs ne peuvent être utilisés que sur les objets et non sur les types de données C. –

+0

Les pointeurs _can_ peuvent être utilisés sur les types de données C. Vous pouvez avoir un pointeur vers int. Mais vous n'en avez pas un, et vous n'en avez pas besoin. – matt

+0

Pourrait vous aider à lire mon livre: http://www.apeth.com/iOSBook/ch01.html#_pointers – matt