iphone objective-c nsmutabledictionary

iphone - ¿Cómo puedo usar un valor entero como ''clave'' para establecer un valor en NSMutableDictionary?



objective-c (3)

¿Cómo puedo usar un valor entero como ''clave'' para establecer un valor flotante en NSMutableDictionary?


Como los NSDictionary solo están diseñados para tratar con objetos, una forma sencilla de hacerlo es envolver el entero y flotar en un objeto NSNumber Por ejemplo:

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

Para extraer el valor relevante, simplemente use el método apropiado intValue, floatValue, etc. de la clase NSNumber.


Debe ser un objeto, por lo tanto, utilice [NSNumber numberWithInt:myInteger] lugar.

Luego, recuperarlo con -integerValue


Puede usar NSMapTable ya que admite claves enteras y / o valores directamente. No es necesario encuadrar / desempaquetar a través de NSNumber, pero también es un poco más difícil de configurar y usar.