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の標準と作業でコードを完全に最新にするために、私が追加/削除する必要があることがわかりません。あなたはスウィフト3使用ネイティブURL
、代わりにNSURL
とNSData
のData
に、また再びoptional
代わりのnon-optional
を、それを設定しているので、そう: NSURL?
を削除