web-dev-qa-db-fra.com

Comment puis-je utiliser une valeur entière comme «clé» pour définir la valeur dans NSMutableDictionary?

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

42
Ratan

Comme les NSDictionarys ne sont conçus que pour traiter des objets, un moyen simple de le faire est d'encapsuler l'entier et de flotter 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.

81
John Parker

Vous pouvez utiliser NSMapTable car il prend en charge directement les clés et/ou les valeurs entières. Pas besoin de box/unbox via NSNumber, mais il est également légèrement plus difficile à configurer et à utiliser.

8
bbum

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

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

2
sidyll