swift – 如何在Xcode 8.3中的’if let’语句中修复类型转换的警告?

前端之家收集整理的这篇文章主要介绍了swift – 如何在Xcode 8.3中的’if let’语句中修复类型转换的警告?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
请考虑以下代码
let nsdate: NSDate? = NSDate()
if let date = nsdate as? Date { // a warning occurs here
    print(date)
}

编译器这样抱怨:来自’NSDate?’的条件性转发? ‘日期’是一种过渡转换;你的意思是’使用’吗?

从NSData到Data的转换具有相同的问题.怎么解决呢?

尝试强制转换为可选日期:
if let date = nsdate as Date?

您正在尝试将可选NSDate的可选强制转换为NON可选日期.只要NSDate从obj-c桥接到Date,所以这个转换总是成功的,所以这里不需要任何可选的强制转换,只需基本转换就足够了.那么你需要转换可选值,所以结果值也必须是可选的,因此Date?这里是合适的.

原文链接:https://www.f2er.com/swift/319575.html

猜你在找的Swift相关文章