gpt4 book ai didi

ios - 我应该如何正确管理JSON提供的图像

转载 作者:行者123 更新时间:2023-11-30 11:19:54 26 4
gpt4 key购买 nike

我正在尝试解析我的应用程序上下载的 JSON 提供的所有图像。所以,我听说过很多正确的方法。我应该使用哪个 API 来管理我的应用程序上的图像?我应该怎么做,可以举个例子吗?

我还想正确处理以下之间的延迟:

运行应用 --> 加载数据 --> 填充 UI 元素

我应该怎样做才能最大限度地减少这种延迟,我认为专业的应用程序不应该花那么长时间来加载所有组件。

这就是我将用图像填充 UITableView 的部分。

var arrCerveja = [Cerveja]()

class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
@IBOutlet weak var tableView: UITableView!

//TableView DataSource
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return arrCerveja.count
}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cellID") as! TableViewCell

let model = arrCerveja[indexPath.row]

cell.labelName.text = model.name
cell.labelDetail.text = "\(model.abv)"
cell. imageViewCell.image = ???? //How should I do that?
return cell
}
//TableView Delegate
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {

}



override func viewDidLoad() {
super.viewDidLoad()
getApiData { (cerveja) in
arrCerveja = cerveja
self.tableView.reloadData()
}

}

模型文件夹:

import Foundation
struct Cerveja:Decodable{
let name:String
let abv:Double
let image_url:String
}

网络文件夹:

import Alamofire


func getApiData(completion: @escaping ([Cerveja]) -> ()){
guard let urlString = URL(string: "https://api.punkapi.com/v2/beers") else {
print("URL Error")
return
}
Alamofire.request(urlString).responseJSON { response in

if response.data == response.data{
do{
let decoder = try JSONDecoder().decode([Cerveja].self, from: response.data!)

completion(decoder)
}catch{
print(error)
}
}else{print("API Response is Empty")}

}
}

最佳答案

您可以做的是缓存下载的图像,有许多库可以帮助您做到这一点,以下是其中一些库的列表:

Kingfisher 是一个很好的库,它还允许您下载图像并解释如何使用 TableView 库。缓存图像还将减少下次打开应用程序时的加载时间。您还可以使用this library在加载过程中向用户显示用户友好的加载。

关于ios - 我应该如何正确管理JSON提供的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51390248/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com