Я хочу проверить, содержит ли строка только цифры. Я наткнулся на этот ответ, написанный в Objective-C.
NSRange range = [myTextField.text rangeOfCharacterFromSet:[NSCharacterSet letterCharacterSet]];
if(range.location == NSNotFound) {
// then it is numeric only
}
Я попробовал преобразовать его в Swift.
let range: NSRange = username.rangeOfCharacterFromSet(NSCharacterSet.letterCharacterSet())
Первая ошибка, с которой я столкнулся, - это когда я назначил тип NSRange
.
Невозможно преобразовать тип выражения 'Range?' для ввода "NSRange"
Итак, я удалил NSRange
, и ошибка исчезла. Затем в выражении if
let range = username.rangeOfCharacterFromSet(NSCharacterSet.letterCharacterSet())
if range.location == NSNotFound {
}
Я столкнулся с другой ошибкой.
'Range? не имеет члена с именем 'location'
Помните, что переменная username
имеет тип String
not NSString
. Поэтому я полагаю, что Swift использует новый тип Range
вместо NSRange
.
Проблема, я не знаю, как использовать этот новый тип для достижения этой цели. Я тоже не встречал ни одной документации.
Кто-нибудь может помочь мне преобразовать этот код в Swift?
Спасибо.