我有2个textFields,用户输入纬度和经度。我将允许的字符限制为数字(0-9),点和短划线,代码如下:
let allowedCharacters = "0123456789-."
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
let cs = NSCharacterSet(charactersIn: allowedCharacters).inverted
let filtered = string.components(separatedBy: cs).joined(separator: "")
return (string == filtered)
}
我面临的问题是,如果用户只输入短划线或仅点数,该怎么办?我尝试检查输入的文本是否为Double,但应用程序崩溃了。
let latText = Double(latitudeTextField.text!)
let lngText = Double(longitudeTextField.text!)
if latText != Double(latText!) || lngText != Double(lngText!) {
errorAlert(title: "", message: "Invalid coordinates")
}
任何帮助将不胜感激!