105 votes

Faire un tableau d'entiers dans Objective-C

Si vous voulez créer un tableau d'entiers, pouvez-vous utiliser NSInteger? Devez-vous utiliser NSNumber? Si oui, alors pourquoi?

66voto

Fred A. Points 287

Tableau C:

 NSInteger array[6] = {1, 2, 3, 4, 5, 6};
 

Tableau Objective-C:

 NSArray *array = @[@1, @2, @3, @4, @5, @6];
 

(les valeurs numériques doivent dans ce cas être encapsulées dans NSNumbers)

(ajouté) Swift Array:

 var array = [1, 2, 3, 4, 5, 6]
 

NB: les tableaux sont fortement typés en Swift; dans ce cas, le compilateur déduit du contenu que le tableau est un tableau d'entiers. Vous pouvez aussi utiliser cette syntaxe de type explicite:

 var array: [Int] = [1, 2, 3, 4, 5, 6]
 

5voto

Dennis Munsie Points 843

Si vous souhaitez utiliser un tableau NSArray, vous devez y placer une classe Objective-C, d'où l'exigence NSNumber.

Cela dit, Obj-C est toujours C, vous pouvez donc utiliser des tableaux C normaux et conserver des ints réguliers au lieu de NSNumbers si vous en avez besoin.

4voto

MrTJ Points 4547

J'ai créé un simple wrapper Objective C autour du bon vieux tableau C pour pouvoir l'utiliser plus facilement: https://gist.github.com/4705733

4voto

didier_v_ Points 119

Si l'ordre des nombres entiers n'est pas nécessaire, et si vous n'êtes que des valeurs uniques

vous pouvez également utiliser NSIndexSet ou NSMutableIndexSet Vous serez en mesure de facilement ajouter et supprimer des entiers, ou de vérifier si votre tableau contient un nombre entier avec

- (void)addIndex:(NSUInteger)index
- (void)removeIndex:(NSUInteger)index
- (BOOL)containsIndexes:(NSIndexSet *)indexSet

Vérifiez la documentation pour plus d'info.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X