iOS/Swift에 처음 오셨습니까? 내가 스위프트 2에서 스위프트 3. 원래 코드 (단순히 NSData init()
방법을 통해 URL의 내용을 반입하는) 프로젝트를 마이그레이션하려고하면 다음과 같습니다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)
}
}
}
을
NSData
반환 값을 URL
으로 캐스팅하고 Swift 3 내에서 이미지를로드하는 동안 해당 반환 값을 Data
유형으로 다시 캐스팅해야하는 이유가 확실하지 않습니다. 둘 다 원시 데이터를 변수 loadedImageData
에 할당합니다 버전. 그럼 왜 캐스팅? UIImage init()
메서드는 Swift 3 내에서 데이터 개체가 필요합니다. Swift 2의 경우에는 동일한 개체가 없습니다. 왜 그런가요?
도움 주셔서 감사합니다.
아하하 .. URL은 실제로 선택적인 NSUrl 변수로 구축되고 있습니다. 말이 맞습니다. swift 2.0 API 및 해당 변경 사항에 대한 설명서는 어디에서 찾을 수 있습니까? https://developer.apple.com/reference/foundation/nsdata를 참조하고 있습니다. 그러나 이것은 2.0에서 3.0까지의 init 메소드의 변경 사항을 보여주지 않습니다. 감사!! – user2511882
@ user2511882 여러분을 환영합니다. 해피 홀리데이. – Unheilig