我试图在Swift 4中找到当前的系统版本,我有一个标签,我将设置为"更新"或者"未更新",取决于当前iOS版本是> = 11.2还是< 11.2。
这在模拟器中运行得很好,但是当我在我的iPhone X上运行它时,它会返回一个错误说:"线程1:致命错误:在解开一个Optional值"时意外发现nil,说明systemDouble等于nil。
我试过说如果systemDouble!= nil,如果systemDouble == nil,但似乎没有任何效果。
非常感谢任何帮助,谢谢
以下代码:
@IBOutlet weak var updateStatus: UILabel!
let systemVersion = UIDevice.current.systemVersion
let systemDouble = Double(systemVersion)
if (updateStatus != nil && systemDouble! >= 11.2)
{
updateStatus.text! = "Updated"
updateStatus.textColor = UIColor.green
}
else if (updateStatus != nil && systemDouble! < 11.2)
{
updateStatus.text! = "Not Updated" + String (systemVersion)
updateStatus.textColor = UIColor.red
}
答案 0 :(得分:1)
systemVersion
是一个字符串,并不能保证它可以转换为数字。因此,当您强行打开它时,会出现错误。
我建议改用if #available(iOS 11.2, *)
。