iOS / Swift:如何在textField中检查Double?

时间:2018-04-04 06:15:38

标签: ios swift textfield

我有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")
}

任何帮助将不胜感激!

0 个答案:

没有答案