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

Swift 如何通过IF检查字符串的endIndex?,swift,Swift,我想要我正在制作的计算器,特别是退格按钮来检查点是否被擦除 if mainNumberLine.text!.endIndex == "." { } 如果没有更多的上下文,写“我得到了最常见的错误”表达式类型是不明确的这里不需要使用索引。您可以按以下方式重写您的条件: if let text = mainNumberLine.text, text.last == "." { } 检查一下。如果使用backspace删除,则只需实现UITextFieldDelegate方法text

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

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

}

如果没有更多的上下文,写“我得到了最常见的错误”表达式类型是不明确的

这里不需要使用索引。您可以按以下方式重写您的条件:

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

}
检查一下。如果使用backspace删除,则只需实现UITextFieldDelegate方法textField\uU3:shouldChangeCharactersIn:replacementString:

在上述代码中

string.isEmpty标识replacementString是否为空字符串,即按下backspace键

textField.text?.last标识textField的最后一个字符是否为


如果每次按下一个键时都需要检查此项,那么我认为需要实现委托方法textField\uz:shouldChangeCharactersIn:replacementString:Get the.text!。属性@mainNumberLine是UITextField的一个实例。它没有上一个属性。您应该使用mainNumberLine.text!获取文本字段文本的最后一个字符!。lastYes,您是对的,出于某种原因,想到了使用旧API的字符串实例。
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
    if string.isEmpty && textField.text?.last == "." {
        print(". is erased")
    }
    return true
}