我想将输入带入UITextField并将其转换为Double以进行计算。
func testFunction(field: UITextField) -> Int {
let textInField: String! = field.text
let value = Double!(textInField)
}
但是我得到了错误:
“字符串?”不能转换为“ Double”
如何解决此问题?
答案 0 :(得分:0)
UITextField
的 text
属性:
此字符串默认为@“”。
因此,这实际上意味着该属性永远不会nil
,因此您可以使用感叹号安全地强制展开它
let textInField = field.text! // String
然后,您的方法应返回Double
,而不是Int
。另外,如果Double
初始化失败,它将返回nil
,因此您的方法应返回可选的值类型
func testFunction(field: UITextField) -> Double? {
return Double(field.text!)
}
最后,当您调用此方法时,应安全地解开其返回值。为此,您可以使用可选的绑定
if let doubleValue = testFunction(field: someField) {
// work with `doubleValue`
}
答案 1 :(得分:-1)
也许这是正确的格式?
func testFunction(field: UITextField) -> Int {
if let textInField = field.text ,
let value = Double(textInField){
print(value)
}}