gpt4 book ai didi

swift - 在包含许多 JSON 页面的 Swift 中向下滚动 TableView

转载 作者:行者123 更新时间:2023-11-28 07:38:17 36 4
gpt4 key购买 nike

伙计们。我需要滚动我的 TableView 并从一些 JSON 页面加载数据。我只为一页做了这个,但我不知道如何为多页做这个。这是 API http://www.omdbapi.com/?s=world&page=2&apikey=eae75c46

此 API 具有属性“TotalResult”,因此我可以得到它并除以 10。在本例中为 7180/10,因此我有 718 个页面。但我不知道该怎么办了。

import UIKit

class FilmsViewController: UIViewController {

@IBOutlet weak var tableView: UITableView!

var films = Films()

override func viewDidLoad() {
super.viewDidLoad()

getDate()

}

func getDate() {
let session = URLSession.shared

session.dataTask(with: URL(string: "http://www.omdbapi.com/?s=world&apikey=eae75c46")!) { (data, response, error) in
guard let data = data else { return }

do {
self.films = try JSONDecoder().decode(Films.self, from: data)
DispatchQueue.main.async {
self.tableView.reloadData()
}
} catch {
print(error)
}
}.resume()
}

func configureCell(cell: FilmsCell, for indexPath: IndexPath) {

guard let search = self.films.search else { return }
let films = search[indexPath.row]
cell.titleFilmLabel.text = films.title
}

}

extension FilmsViewController: UITableViewDelegate {

}

extension FilmsViewController: UITableViewDataSource {
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
guard let search = self.films.search else { return 0 }
return search.count
}

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

configureCell(cell: cell, for: indexPath)

return cell
}
}

最佳答案

到目前为止,您似乎已经完成了 POC,从 API 获取数据并加载到屏幕上。

对于向前发展的组织,您需要将此代码分解为多个文件。为了不过分,我建议从处理创建 http 请求的细节的 API 类开始,比如 header/body/auth。 API 类返回 data/json 还是 film 对象由您决定。您还需要一个模型类来处理通过 api 类跟踪接下来应该从服务器获取的页面。您可以在此处或 View Controller 中保留电影数组。

当用户向下滚动时,您可以等待他们到达底部,在 API 提取发生时在最后一个单元格下方显示事件指示器,然后在底部插入新结果,或者您可以预提取数据。

至少应该让你开始。

从 api 返回的对象是否有一个 id/date/order 可以用于 future 的请求,比如之前获取项目......希望是的,你可以使用它而不是跟踪你在哪个页面。

关于swift - 在包含许多 JSON 页面的 Swift 中向下滚动 TableView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52882302/

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