我是Swift的新手。当我遇到NSURL
,URL
和NSData
和Data
时,我正在从Internet中汲取图像。我真的很困惑。我使用哪些?我使用了以下代码,但是我必须转换如下所示的类型。这样做的正确方法是什么?NSURL
和URL
和NSData
和Data
有什么区别?有人请帮忙。
if let theProfileImageUrl = tweet.user.profileImageURL{
if let imageData = NSData(contentsOf: theProfileImageUrl as URL){
profileImageView.image = UIImage(data: imageData as Data)
}
}
许多类名称删除了 NS
前缀。如果您正在编写Swift 3代码,则应仅使用更新的类。在这种情况下,URL
和Data
。
但是,URL
被桥接到NSURL
,Data
被桥接到NSData
,因此您可以在需要时施放。
if let theProfileImageUrl = tweet.user.profileImageURL {
do {
let imageData = try Data(contentsOf: theProfileImageUrl as URL)
profileImageView.image = UIImage(data: imageData)
} catch {
print("Unable to load data: (error)")
}
}
我不知道tweet.user.profileImageURL
在哪里定义了,但它似乎正在使用NSURL
,因此您需要将其施加到代码中的URL
。
swift 5.0 在背景上获取
private func fetchImage(_ photoURL: URL?) {
guard let imageURL = photoURL else { return }
DispatchQueue.global(qos: .userInitiated).async {
do{
let imageData: Data = try Data(contentsOf: imageURL)
DispatchQueue.main.async {
let image = UIImage(data: imageData)
self.userImageView.image = image
self.userImageView.sizeToFit()
}
}catch{
print("Unable to load data: (error)")
}
}
}