У меня есть приложение iOS с UITextField
, которое позволяет пользователю вводить число. Как я могу гарантировать, что значение, которое пользователь вводит, является допустимым числом (либо целым или десятичной). Вот то, что я пробовал, но по какой-то причине он не будет работать для десятичных чисел:Проверьте правильность номера NSString - целое или десятичное число
NSCharacterSet *notDigits = [[NSCharacterSet decimalDigitCharacterSet] invertedSet];
if ([numString rangeOfCharacterFromSet:notDigits].location == NSNotFound) {
NSLog(@"valid number");
}
else {
NSLog(@"invalid number");
}
Если я ввести десятичное число, например, 435.634, приведенный выше код возвращает «недопустимый номер» в журнале консоли. Я не понимаю, почему это не работает, поскольку я использую decimalDigitCharacterSet
?
Используйте 'NSNumberFormatter', чтобы он правильно обрабатывал определенные номера. – rmaddy
Набор 'decimalDigitCharacterSet' содержит цифры, а не знаки препинания. – rmaddy
@Supertecnoboff - еще один вариант - предоставить пользователю цифровую клавиатуру. Больше не нужно беспокоиться ни о чем другом - https://www.cocoacontrols.com/search?q=numeric –