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);
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
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.
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]);
@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];