我有一张桌子:
let CTCSStable:[String] = [ "67.0 ", "69.3 ", "71.9 "]
我需要将所选条目转换为等于条目数值十倍的字符串。
var tempCTCSS:String = self.CTCSStable[ctcssIndex]
let tempCTCSSF:Float = Float(tempCTCSS)!
这会引发异常:
致命错误:在解包可选值时意外发现nil
答案 0 :(得分:4)
你遇到崩溃的原因是因为Float(tempCTCSS)!
正在尝试将tempCTCSS
转换为Float,但它失败了,然后你强制打开该值并且它是nil,所以它崩溃了。
无法将该字符串转换为Float的原因是因为存在空格。尝试删除空格。
除非你知道那个值存在,否则我永远不会强行打开(即!
)。最佳做法是将该值包装在if let
语句中。这有条件地解开了价值并防止崩溃