web-dev-qa-db-fra.com

comment convertir NSNumber en int en Objective-C

Avant de placer la valeur int dans le dictionnaire, j’ai défini la valeur int comme [NSNumber numberWithInt: 2], maintenant que j’essaie de récupérer le contenu du dictionnaire, je le veux au format int .. comment le faire?

voici mon code;

NSMutabelDictionary *dict = [[NSMutableDictionary alloc]init];
int intValue = 300;

[dict setObject:[NSNumber numberWithInt:intValue] forKey:@"integer"];

retriving .........

int number = [dict ObjectForKey:@"integer"];

.. il jette une exception sayin casting est requis .. quand je le fais de cette façon ..

int number = (int)[dict ObjectForKey:@"integer"];

ça ne marche pas ...

comment résoudre ce problème?/

veuillez suggérer..

118
suse

Regardez la documentation . Utilisez la méthode intValue:

int number = [[dict objectForKey:@"integer"] intValue];
190
Felix Kling

Vous devriez vous en tenir aux types de données NSInteger lorsque cela est possible. Donc, vous créez le numéro comme ça:

NSInteger myValue = 1;
NSNumber *number = [NSNumber numberWithInteger: myValue];

Le décodage fonctionne avec la méthode integerValue puis:

NSInteger value = [number integerValue];
58
Max Seelemann

Utilisez la méthode NSNumber intValue

Voici documentation de référence Apple

3
rano

Une approche moins verbeuse:

int number =  [dict[@"integer"] intValue];
0
baskInEminence