20

So this problem has been perplexing me for way too long. I have a UIAlertView with a textField in it, and I need the value of the textField as an NSNumber. But everything I try gives me random strings of numbers. Any help would be very much appreciated.

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);
Andrew
  • 3,874
  • 5
  • 39
  • 67

4 Answers4

50

Once see this one,

NSString *string = @"123";
NSNumber  *aNum = [NSNumber numberWithInteger: [string integerValue]];
NSLog(@"%@",aNum);//NSString to NSNumber
NSInteger number=[string intValue];
NSLog(@"%i",number);//NSString to NSInteger
Praveenkumar
  • 24,084
  • 23
  • 95
  • 173
Balu
  • 8,470
  • 2
  • 24
  • 41
  • I think it was the `numberWithInteger` and `integerValue` parts that made it work for whatever reason. Anyway, Thanks a lot. – Andrew Apr 02 '13 at 01:34
7
NSString *string = @"54";
NSNumber *number = @([string intValue]);
NSLog(@"here we are: %i", number);

Instead try using the following:

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

Since you are converting to NSNumber (Object). You should use object specifier %@ in your NSLog statement.

Anil
  • 2,430
  • 3
  • 37
  • 55
bpolat
  • 3,879
  • 20
  • 26
3

Here's a sample with an integer and using NSNumber literals. You could also use the floatValue method if your string contains a float.

NSString *string = @"54";
NSNumber *number = @([string intValue]);
Aaron Wojnowski
  • 6,352
  • 5
  • 29
  • 46
3

@Aaron Wojnowski,

Use NSNumberFormatter If you want, you can set grouping separator also.

NSNumberFormatter *formatString = [[NSNumberFormatter alloc] init];
stringValue = textfield.text;
NSNumber *reqNumber = [formatString numberFromString:stringValue];
Praveenkumar
  • 24,084
  • 23
  • 95
  • 173
Ramu Pasupuleti
  • 888
  • 2
  • 15
  • 35