我在更新我的iOS應用程序的代碼到最新版本的Swift時遇到問題。明確指定的類型'NSURL?'問題,同時更新到Swift 3
我有一個函數:
public class func gifWithURL(gifUrl:String) -> UIImage? {
// Validate URL
guard let bundleURL:NSURL? = NSURL(string: gifUrl)
else {
print("SwiftGif: This image named \"\(gifUrl)\" does not exist")
return nil
}
// Validate data
guard let imageData = NSData(contentsOf: bundleURL! as URL) else {
print("SwiftGif: Cannot turn image named \"\(gifUrl)\" into NSData")
return nil
}
return gifWithData(data: imageData)
}
而且我得到以下行警告:
guard let bundleURL:NSURL? = NSURL(string: gifUrl)
和我得到的警告:
明確指定類型「NSURL ?爲初始化程序增加了一個額外的可選級別,使可選檢查始終成功
Xcode允許我自動修復此問題。當我執行此自動修復時,我的代碼更改爲:
guard let bundleURL:NSURL NSURL(string: gifUrl)
這顯然不是正確的語法。
我不確定我需要添加/刪除以使我的代碼完全符合Swift 3標準的最新進展和工作。