在Swift 4中查找systemDouble值中的nil

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Swift 4中查找systemDouble值中的nil相关的知识,希望对你有一定的参考价值。

我试图在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

}
答案

systemVersion是一个字符串,并不能保证它可以转换为数字。因此,当您强行打开它时,会出现错误。

我建议改用if #available(iOS 11.2, *)

以上是关于在Swift 4中查找systemDouble值中的nil的主要内容,如果未能解决你的问题,请参考以下文章

在 Swift 4.2 中 NSCollectionView 的 SupplementaryElementKind 字符串值中使用啥

在其他地图值中查找元素的最佳方法是啥?

如何使用 SQL 从字典查找值中获取平均值?

从链接值中查找唯一用户

MySQL JSON:如何从键值中查找对象

在自己的初始值中使用的变量 Swift 3