请考虑以下代码:
let nsdate: NSDate? = NSDate() if let date = nsdate as? Date { // a warning occurs here print(date) }
编译器这样抱怨:来自’NSDate?’的条件性转发? ‘日期’是一种过渡转换;你的意思是’使用’吗?
从NSData到Data的转换具有相同的问题.怎么解决呢?
尝试强制转换为可选日期:
原文链接:https://www.f2er.com/swift/319575.htmlif let date = nsdate as Date?
您正在尝试将可选NSDate的可选强制转换为NON可选日期.只要NSDate从obj-c桥接到Date,所以这个转换总是成功的,所以这里不需要任何可选的强制转换,只需基本转换就足够了.那么你需要转换可选值,所以结果值也必须是可选的,因此Date?这里是合适的.