web-dev-qa-db-fra.com

NSString à NSNumber

Donc, ce problème me rend perplexe depuis trop longtemps. J'ai un UIAlertView avec un textField et j'ai besoin de la valeur de textField comme NSNumber. Mais tout ce que j'essaie me donne des chaînes de nombres aléatoires. Toute aide sera la bienvenue.

int i = [[alertView textFieldAtIndex:0].text intValue];
NSNumber *number = [NSNumber numberWithInt:[[alertView textFieldAtIndex:0].text integerValue]];    


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

NSLog(@"text = %@", [alertView textFieldAtIndex:0].text);


NSString *alertText = [alertView textFieldAtIndex:0].text;

NSNumberFormatter * f = [[NSNumberFormatter alloc] init];
[f setNumberStyle:NSNumberFormatterNoStyle];
NSNumber * myNumber = [f numberFromString:[alertView textFieldAtIndex:0].text];


NSNumber *number = @([alertText intValue]);

NSString *string = @"54";
NSNumber *number = @([string intValue]);

NSLog(@"here we are: %i", number);
20
Andrew

Une fois voir celui-ci,

NSString *string = @"123";
NSNumber  *aNum = [NSNumber numberWithInteger: [string integerValue]];
NSLog(@"%@",aNum);//NSString to NSNumber
NSInteger number=[string intValue];
NSLog(@"%i",number);//NSString to NSInteger
50
Balu
NSString *string = @"54";
NSNumber *number = @([string intValue]);
NSLog(@"here we are: %i", number);

Essayez plutôt d'utiliser les éléments suivants:

NSLog(@"here we are: %@", number);

Puisque vous convertissez en NSNumber (Object). Vous devez utiliser le spécificateur d'objet% @ dans votre instruction NSLog.

7
bpolat

Voici un exemple avec un entier et utilisant des littéraux NSNumber. Vous pouvez également utiliser la méthode floatValue si votre chaîne contient un flottant.

NSString *string = @"54";
NSNumber *number = @([string intValue]);
3
Aaron Wojnowski

@Aaron Wojnowski,

Utilisez NSNumberFormatter Si vous le souhaitez, vous pouvez également définir un séparateur de regroupement.

NSNumberFormatter *formatString = [[NSNumberFormatter alloc] init];
stringValue = textfield.text;
NSNumber *reqNumber = [formatString numberFromString:stringValue];
3
Ramu Pasupuleti