如何通过IF检查字符串的endIndex?

时间:2019-05-25 13:54:09

标签: swift

我想要我正在制作的计算器,特别是退格按钮,以检查点是否被擦除

if mainNumberLine.text!.endIndex == "." {

}

写到我对我来说是最常见的错误“表达类型是模棱两可的,没有更多上下文”

2 个答案:

答案 0 :(得分:1)

您无需在此处使用索引。您可以按照以下方式重写条件:

if let text = mainNumberLine.text,
     text.last == "." {

}

答案 1 :(得分:0)

要检查"."是否已被backspace删除,您只需实现UITextFieldDelegate方法textField(_:shouldChangeCharactersIn:replacementString:)

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
    if string.isEmpty && textField.text?.last == "." {
        print(". is erased")
    }
    return true
}

在上面的代码中,

  1. string.isEmpty标识replacementString是否为empty string,即是否按下backspace

  2. textField.text?.last标识character的最后textField是否是"."