Подтвердить что ты не робот

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

Ответ 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];