要使用API中的数据搜索tableView,你需要完成以下几个步骤:
以下是一个简单的示例,展示如何使用URLSession从API获取数据并更新tableView:
import UIKit
class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {
var tableView: UITableView!
var data = [Item]()
override func viewDidLoad() {
super.viewDidLoad()
tableView = UITableView(frame: view.bounds, style: .plain)
tableView.dataSource = self
tableView.delegate = self
view.addSubview(tableView)
fetchData()
}
func fetchData() {
let url = URL(string: "https://api.example.com/items")!
let task = URLSession.shared.dataTask(with: url) { data, response, error in
if let error = error {
print("Error fetching data: \(error)")
return
}
guard let data = data else { return }
do {
let items = try JSONDecoder().decode([Item].self, from: data)
DispatchQueue.main.async {
self.data = items
self.tableView.reloadData()
}
} catch {
print("Error decoding JSON: \(error)")
}
}
task.resume()
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return data.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = UITableViewCell(style: .subtitle, reuseIdentifier: "cell")
let item = data[indexPath.row]
cell.textLabel?.text = item.title
cell.detailTextLabel?.text = item.description
return cell
}
}
struct Item: Codable {
let title: String
let description: String
}
DispatchQueue.main.async
。通过以上步骤和示例代码,你应该能够实现从API获取数据并在tableView中展示的功能。如果遇到具体问题,请提供详细信息以便进一步诊断。
领取专属 10元无门槛券
手把手带您无忧上云