2015-03-11 7 views
0

У меня есть контроллер, который будет иметь переменное количество текстовых полей. Нажав кнопку, я хочу проверить наличие, независимо от того, пустой или нет, и проверить количество символов ввода.Swift: проверка наличия uitextfield

Я пытаюсь следующий, который работает хорошо, если HomePhone существует

if homePhone?.text != ""{ 
if countElements(homePhone1.text) != 10{ 
    validInput = false 
    validationError = "Home Phone must be 10 digits" 
} 
} 

Но когда текстовое поле не существует (мобильный) Я получаю фатальную ошибку

if mobilePhone?.text != ""{ 
if countElements(mobilePhone.text) != 10{ 
    validInput = false 
    validationError = "Mobile Phone must be 10 digits" 
} 
} 

fatal error: unexpectedly found nil while unwrapping an Optional value 

Очевидно, я не делая проверку правильно, опции и разворачивание постоянно меня отключает.

ответ

0

Вы можете разворачивать свой текстовое поле и проверить, если он существует:

if let mobilePhoneField = mobilePhone{ 
    if mobilePhoneField.text != ""{ 
    if countElements(mobilePhoneField.text) != 10{ 
     validInput = false 
     validationError = "Mobile Phone must be 10 digits" 
    } 
    } 
} 
+0

если пусть mobilePhoneField = MobilePhone - так это часть unrapping? –

+0

Да. Это часть. – Christian

+0

спасибо. По какой-то причине я подумал! как-то связано с разворачиванием –

0

Это проверит, является ли ваша необязательная переменная нулевой или нет, поэтому вы можете безопасно ее развернуть, в действительности она сделает это за вас.

if let value = myOptionalVariable{ 
    //my optionalVariable is not nill i can do whatever i want 
    value.text = "Yaay" 
} 
Смежные вопросы