加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-14 05:33:26 所属栏目:百科 来源:网络整理
导读:请考虑以下代码: let nsdate: NSDate? = NSDate()if let date = nsdate as? Date { // a warning occurs here print(date)} 编译器这样抱怨:来自’NSDate?’的条件性转发? ‘日期’是一种过渡转换;你的意思是’使用’吗? 从NSData到Data的转换具有相同
请考虑以下代码:
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?这里是合适的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读