Comment puis-je utiliser une valeur entière comme "clé" pour définir une valeur flottante dans NSMutableDictionary?
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.
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.
Il doit s'agir d'un objet, utilisez donc [NSNumber numberWithInt:myInteger]
au lieu.
Ensuite, récupérez-le avec -integerValue