2017-09-20 144 views
-3

这是我的代码斯威夫特4

let temperature = String(describing: Int(incomeTemp.text!)) 

celcjuszScore.text = "\(temperature)" 
print(temperature) 

了when我按下一个按钮删除“可选”,打印的结果是“可选(32)”(当我在写incomeTemp 32)。我想删除“可选”,只保留“32”。

+0

为什么不直接使用文本原样,而不是将其转换为一个int,然后立即返回到一个字符串? –

+0

注意:不要使用'String(描述:xyz)'从int创建一个字符串,只需使用'String(xyz)'。 “描述”实际上与'xyz.description'相同,它并不总是如您所期望的那样表示字符串内容。 – Moritz

回答

0

只需解开它。

if let temperature = Int(incomeTemp.text!) { 
    celcjuszScore.text = "\(temperature)" 
    print(temperature) 
} 
0

将文本转换为数字时除去可选项:Int(incomeTemp.text!) ?? 0

或明确解决错误:

if let temperature = Int(incomeTemp.text ?? "") { 
    celcjuszScore.text = "\(temperature)" 
} else { 
    celcjuszScore.text = "Invalid temperature" 
}