NSURL, URL and NSData, Data



我是Swift的新手。当我遇到NSURLURLNSDataData时,我正在从Internet中汲取图像。我真的很困惑。我使用哪些?我使用了以下代码,但是我必须转换如下所示的类型。这样做的正确方法是什么?NSURLURLNSDataData有什么区别?有人请帮忙。

if let theProfileImageUrl = tweet.user.profileImageURL{
    if let imageData = NSData(contentsOf: theProfileImageUrl as URL){
        profileImageView.image = UIImage(data: imageData as Data)
    }
}

许多类名称删除了 NS前缀。如果您正在编写Swift 3代码,则应仅使用更新的类。在这种情况下,URLData

但是,URL被桥接到NSURLData被桥接到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)")
        }
    }
}

最新更新