簡體   English   中英

如何從JSON數據響應中獲取UIImage?

[英]How to get UIImage from JSON Data response?

我試圖以字節為單位獲取圖像並從中創建UIImage ,但我無法理解如何解析它。

我的代碼:

func getAvatar() {
    NetworkManager.shared.getAvatar(methodPath: "www.xxxxxx.xxx", params: nil) { (data) in
        guard let dataValue = data as? Data else {return}
        DispatchQueue.main.async {
            do {
                let response = try JSONSerialization.jsonObject(with: dataValue, options: .mutableContainers)
                print(response)
            } catch {
                print("Class - HomePageHelper, Method - getAvatar = \(error)")
            }
        }
    }
}

在郵遞員中,我得到這樣的東西:

在此輸入圖像描述

我做錯了什么?

此響應格式為Data

您可以在可選之后使用它從UIImage創建實例

鏈接guard let dataValue = data as? Data else {return} guard let dataValue = data as? Data else {return}

使用此dataValue來制作這樣的UIImage

let img = UIImage(data: dataValue)

我想提供詳細的解決方案。

我已經使用這種方法從互聯網上下載數據對象。

    public func getData(from url: URL, completion: @escaping (Data?, URLResponse?, Error?) -> ()) {
        URLSession.shared.dataTask(with: url, completionHandler: completion).resume()
    }

這里實現了這段代碼,用於從互聯網上下載圖像。

        if let urlPath = model?.iconUrl, let url = URL(string: urlPath) {
            NetworkClass.sharedInstance.getData(from: url) { (data, response, error) in
                guard let data = data, error == nil else { return }
                DispatchQueue.main.async() {
                    self.imageView.image = UIImage(data: data)
                }
            }
        }

您可以使用SDWebImage

imageView.sd_setImage(with: URL(string:urlStr), placeholderImage: UIImage(named: "placeholder.png"))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM