NSString для 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);
Ответы
Ответ 1
один раз увидим это,
NSString *string = @"123";
NSNumber *aNum = [NSNumber numberWithInteger: [string integerValue]];
NSLog(@"%@",aNum);//NSString to NSNumber
NSInteger number=[string intValue];
NSLog(@"%i",number);//NSString to NSInteger
Ответ 2
NSString *string = @"54";
NSNumber *number = @([string intValue]);
NSLog(@"here we are: %i", number);
Вместо этого попробуйте использовать следующее:
NSLog(@"here we are: %@", number);
Поскольку вы конвертируете в NSNumber (Object). Вы должны использовать спецификатор объекта% @в своем заявлении NSLog.
Ответ 3
Здесь образец с целым числом и с использованием литералов NSNumber. Вы также можете использовать метод floatValue
, если ваша строка содержит поплавок.
NSString *string = @"54";
NSNumber *number = @([string intValue]);
Ответ 4
@Aaron Wojnowski,
Использовать NSNumberFormatter. Если вы хотите, вы также можете установить разделитель группировки.
NSNumberFormatter *formatString = [[NSNumberFormatter alloc] init];
stringValue = textfield.text;
NSNumber *reqNumber = [formatString numberFromString:stringValue];