Sobes.tech
Junior — Middle

Quelle est la différence entre le type de données NSInteger et la classe NSNumber en Objective-C?

sobes.tech IA

Réponse de l'IA

NSInteger — c'est un type de donnée primitif (typedef pour int ou long selon l'architecture), utilisé pour stocker des valeurs entières. Ce n'est pas un objet et il fonctionne au niveau de la pile.

NSNumber — c'est une classe enveloppe (objet) qui permet de stocker des valeurs numériques (y compris NSInteger, float, double, etc.) sous forme d'objets. Cela est utile lorsque vous souhaitez stocker un nombre dans des collections qui ne fonctionnent qu'avec des objets, comme NSArray ou NSDictionary.

Exemple :

NSInteger myInt = 42; // type entier simple
NSNumber *myNumber = @(myInt); // enveloppe d'objet pour le nombre

// Utilisation de NSNumber dans un tableau
NSArray *array = @[myNumber];

// Récupération de la valeur de NSNumber
NSInteger value = [myNumber integerValue];

Ainsi, NSInteger est un type numérique de base, et NSNumber est un objet qui encapsule un nombre pour une utilisation dans un contexte orienté objet.