Проверка входного значения - PullRequest
0 голосов
/ 09 января 2012

Я пытаюсь проверить, дает ли пользователь ввод цифрой, а не буквами.Когда задано нечисловое значение, я хочу напечатать сообщение об ошибке типа «неверный формат».

Это мой исходный код:

-(IBAction)btnPressed{

    NSString *firstString = textFiled1.text;
    NSString *secondString = textFiled2.text;
    NSString *thirdString = textFiled3.text;

    int num1;
    int num2;
    int num3;

    int output;

    num1 = [firstString intValue];
    num2 = [secondString intValue];
    num3 = [thirdString intValue];

    output = (num1 + num2) / num3;

    lable1.text = [NSString stringWithFormat:@"%d",output];
}

Ответы [ 2 ]

4 голосов
/ 09 января 2012

Использовать NSNumberFormatter.Если входной параметр не является допустимым числом, полученное число будет равно нулю.

NSNumberFormatter * f = [[NSNumberFormatter alloc] init];
[f setNumberStyle:NSNumberFormatterDecimalStyle];
num1 = [f numberFromString:firstString];
[f release];

if (num1 == nil) {
// throw exception
}
0 голосов
/ 09 января 2012

Вот как бы я это сделал:

NSCharacterSet *nonNumbers = [[NSCharacterSet decimalDigitCharacterSet] invertedSet];
if ([firstString rangeOfCharacterFromSet:nonNumbers].location != NSNotFound) {
    // firstString has non-number characters in it!
}
...