考慮下面的代碼:如何在Xcode 8.3的'if let'語句中修復類型轉換的警告?
let nsdate: NSDate? = NSDate()
if let date = nsdate as? Date { // a warning occurs here
print(date)
}
編譯器會抱怨這樣的:Conditional downcast from 'NSDate?' to 'Date' is a bridging conversion; did you mean to use 'as'?
從NSData
強制轉換爲Data
有同樣的問題。如何解決它?
FYI:斯威夫特3編譯器不抱怨關於你的代碼;-)應該是Swift 3.1的東西... –
更新到Xcode 8.3.1後會發生警告。我曾在操場上試過它。 –
爲什麼要聲明一個**可選的**常量,而是指定**非可選的**值。這太瘋狂了。 **不要註釋編譯器可以推斷的類型**。你做得更糟。 – vadian