NSString到NSNumber

时间:2013-04-01 05:34:09

标签: iphone objective-c nsstring int nsnumber

所以这个问题一直困扰着我。我有一个UIAlertView,其中包含textField,我需要textField的值为NSNumber。但我尝试的一切都给了我随机的数字串。非常感谢任何帮助。

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);

4 个答案:

答案 0 :(得分:48)

一旦看到这个,

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

答案 1 :(得分:7)

NSString *string = @"54";
NSNumber *number = @([string intValue]);
NSLog(@"here we are: %i", number);

请尝试使用以下内容:

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

因为您要转换为NSNumber(对象)。您应该在NSLog语句中使用对象说明符%@。

答案 2 :(得分:3)

这是一个带整数并使用NSNumber文字的示例。如果您的字符串包含浮点数,也可以使用floatValue方法。

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

答案 3 :(得分:3)

@Aaron Wojnowski,

使用NSNumberFormatter如果需要,您也可以设置分组分隔符。

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