2009-09-22 19 views
24

Tengo un NSDictionary que se inicializó con un plist que, entre otras cosas, contenía count seguido por 32 y quiero obtener el valor para count.¿Cómo saco un entero de un NSDictionary y lo pongo en un número entero?

¿Cómo?

sé cómo conseguirlo en un objeto a través de

[dictionaryObjectName objectForKey:@"count"] 

Pero para mí, el valor que estoy obteniendo no es un objeto.

Si tengo que especificar un objeto, ¿cuál sería el mejor para usar (FYI el valor siempre estará sin firmar) y tengo que obtenerlo en un int verdadero.

Qué hago algo así como

NSNumber *num = [dictionaryObjectName objectForKey:@"count"]; 
int theValue = [num intValue]; 
[num release]; 

es la liberación de num una buena cosa que hacer ya que esto para un iPhone sin recolector de basura?

+0

int theValue = [ num intValue]; // es un 'int' AND NSInteger theValue = [num integerValue]; // es un NSInteger –

Respuesta

24

Sí, lo saca como NSNumber, luego tome el int(eger)Value pero no hay necesidad de soltarlo. No retuvo, asignó ni copió el número, por lo que no tiene que preocuparse de liberarlo.

+0

Gracias Dave !!! – Dale

27

y la forma más bonita es:

int theValue = [[dictionaryObjectName objectForKey:@"count"] intValue]; 

EDITAR

ya que veo que la gente todavía llegan a esta página, vamos a aclarar que en estos días sólo tiene que hacer

int theValue = [dictionaryObjectName[@"count"] intValue]; 
Cuestiones relacionadas