0

我有一个控制器,它将具有可变数量的文本字段。在按下按钮时,我想检查是否存在,是否为空,并检查输入的字符数。

我正在尝试以下方法,如果 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

显然我没有正确地进行检查,选项和展开不断地让我绊倒。

4

2 回答 2

0

您可以打开文本字段并检查它是否存在:

if let mobilePhoneField = mobilePhone{
  if mobilePhoneField.text != ""{
    if countElements(mobilePhoneField.text) != 10{
        validInput = false
        validationError = "Mobile Phone must be 10 digits"
    }
  }
}
于 2015-03-11T15:24:50.110 回答
0

这将检查您的可选变量是否为 nil,以便您可以安全地打开它,实际上它会为您完成。

if let value = myOptionalVariable{
    //my optionalVariable is not nill i can do whatever i want
    value.text = "Yaay"
}
于 2015-03-11T15:22:57.143 回答