iOS/Swiftの新機能です。NSData init?(contentsOf url:URL)Swift 2からSwift 3への移行
let loadedImageData = NSData(contentsOfURL: imageURL)
dispatch_async(dispatch_get_main_queue()) {
if imageURL == user.profileImageURL {
if let imageData = loadedImageData {
self.profileImageView?.image = UIImage(data: imageData)
}
}
}
スウィフト3移行:
let loadedImageData = NSData(contentsOf: imageURL as URL)
DispatchQueue.main.async {
if imageURL == user.profileImageURL {
if let imageData = loadedImageData {
self.profileImageView?.image = UIImage(data: imageData as Data)
}
}
}
私は元のコードは次のようになりスウィフト3にスウィフト2からプロジェクトを(それは単に
NSData init()
メソッドを介してURLからコンテンツをフェッチ)に移行しようとしています
の戻り値をURL
としてキャストしてから、Swift 3内に画像を読み込み中にその戻り値をData
型に再度キャストする必要があるかどうかはわかりません。生データを変数loadedImageData
に両方バージョン。それでなぜキャスティング? UIImage init()
メソッドはSwift 3内でデータオブジェクトを必要とするようです。しかしSwift 2では同じもののキャストはありません。何故ですか?
ありがとうございました。
ahhhですね... URLは実際にはオプションのNSUrl変数として構築されています。これは理にかなっています。 swift 2.0 APIのドキュメントとそれぞれの変更点はどこにありますか?私はこれを参照しています:https://developer.apple.com/reference/foundation/nsdata。しかし、これは2.0から3.0へのinitメソッドの変更を示していません。ありがとう!! – user2511882
@ user2511882ようこそ。ハッピーホリデー。 – Unheilig