嘿,所以我现在一直在尝试解决这个问题。所以我渴望得到答案。我正在尝试做的事情实际上很简单,我有一个字符串形式的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)
}