2009-09-22 7 views
24

J'ai un NSDictionary qui a été initialisé avec un plist qui, entre autres choses, contenait count suivi de 32 et je veux obtenir à la valeur pour count.Comment puis-je extraire un entier d'un NSDictionary et le mettre dans un entier?

Comment?

Je sais comment obtenir dans un objet via

[dictionaryObjectName objectForKey:@"count"] 

Mais pour moi, la valeur que je suis obtenir est pas un objet.

Si je dois spécifier un objet, quel serait le meilleur à utiliser (FYI la valeur sera toujours non signée) et je dois l'obtenir dans un vrai int.

Est-ce que je fais quelque chose comme

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

La libération NOMB une bonne chose à faire puisque cela pour un iPhone sans garbage collector?

+0

int theValue = [ num intValue]; // est un 'int' AND NSInteger theValue = [nombre entierValue]; // est un NSInteger –

Répondre

24

Oui, vous le sortez comme un NSNumber, puis prenez le int(eger)Value mais il n'est pas nécessaire de le libérer. Vous n'avez pas conservé, alloué ou copié le numéro, vous n'avez donc pas à vous soucier de le libérer.

+0

Merci Dave !!! – Dale

27

Et forme plus agréable est:

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

EDIT

Depuis que je vois que les gens arrivent encore à cette page, clarifions que ces jours-ci que vous faites simplement

int theValue = [dictionaryObjectName[@"count"] intValue]; 
Questions connexes