42 votes

Comment utiliser une valeur entière comme "clé" pour définir la valeur dans NSMutableDictionary?

Comment utiliser une valeur entière comme "clé" pour définir une valeur flottante dans NSMutableDictionary?

81voto

middaparka Points 33832

Comme les NSDictionarys ne sont conçus que pour traiter des objets, un moyen simple consiste à envelopper le nombre entier et le nombre flottant dans un objet NSNumber . Par exemple:

 NSMutableDictionary *testDictionary = [[NSMutableDictionary alloc] init];
[testDictionary setObject:[NSNumber numberWithFloat:1.23f]
                   forKey:[NSNumber numberWithInt:1]];
NSLog(@"Test dictionary: %@", testDictionary);

[testDictionary release];
 

Pour extraire la valeur pertinente, utilisez simplement la méthode intValue, floatValue, etc. appropriée de la classe NSNumber.

8voto

bbum Points 124887

Vous pouvez utiliser NSMapTable car il supporte directement les clés entières et / ou les valeurs. Pas besoin de box / unbox via NSNumber, mais il est également un peu plus difficile à configurer et à utiliser.

2voto

sidyll Points 20176

Il doit s'agir d'un objet, utilisez donc [NSNumber numberWithInt:myInteger] place.

Ensuite, récupérez-le avec -integerValue

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