如何将JSON图像弦(而非URL)转换为观看的UIIMAGE



嘿,所以我现在一直在尝试解决这个问题。所以我渴望得到答案。我正在尝试做的事情实际上很简单,我有一个字符串形式的json阵列(我认为)。它们不是URL的图像/字符串在JSON中像这样的" GoodLogo.png",这些问题是JSON的通常图像以URL格式出现。但这只是PNG&JPG

JSON代码我回来:

(
    {
    id = 1;
    logo = "scriptslogo.png";
    name = "scripts";
},
    {
    id = 2;
    logo = "altrlogo.jpg";
    name = "Altr";
},
    {
    id = 3;
    logo = "bostonlogo.jpeg";
    name = "boston";
},
)

我有一个变量,这是一系列字符串。我将JSON数据放入。

代码:

    var imageList = [String]()
    let string = "https://some.url/api"
    let url = NSURL(string: string)
    let request = NSMutableURLRequest(url: url! as URL)
    request.httpMethod = "GET"
    let session = URLSession.shared
    let tache = session.dataTask(with: request as URLRequest) { (data, response, error) -> Void in
        if let jsonObj = try? JSONSerialization.jsonObject(with: data!, options: .allowFragments) as! NSArray {
            let logo = jsonObj.value(forKey: "logo") as? NSArray
            self.imageList = logo as! [String]

            DispatchQueue.main.async {
            self.imageTableView.reloadData()
            }
        }
    }
    tache.resume()

然后,我要做的就是尝试填充表观视图,但是我在下面尝试过的每种方法都崩溃了或没有显示任何东西。

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    if tableView == imageTableView {
            cell = imageTableView.dequeueReusableCell(withIdentifier: "imageCell", for: indexPath) as! imageCell
            cell.cellImage.image = imageList[indexPath.row]

          // Iv'e tried this which I don't no if it even applies to what I'm trying to do 
          if let imageData = Data(base64Encoded: imageList[indexPath.row], options: .ignoreUnknownCharacters) {
          let image = UIImage(data: imageData)
          cell.cellImage.image = image
        }

    }
    return cell

尝试此

let url = URL(string: "http://test.com/images/(imageList[indexPath.row])")
let data = try? Data(contentsOf: url)
if let imageData = data {
    cell.cellImage.image = UIImage(data: data)
}

最新更新