gpt4 book ai didi

ios - 如何使用来自 API 的数据搜索 tableview?

转载 作者:行者123 更新时间:2023-11-28 13:46:37 24 4
gpt4 key购买 nike

我构建了一个 Tableview 来显示从 API 调用的数据(我提到这个是因为我的问题可能是由于 reloadData() 引起的)。

但是,我的数据格式很简单(一个结构),我找到了解决我的问题的答案 here .

但这对我不起作用。我不确定为什么。我的代码已构建且没有错误,但当我搜索某些内容时,没有任何反应。

这是我的代码:

import UIKit

class UsersViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {

@IBOutlet weak var searchBar: UISearchBar!
@IBOutlet weak var dataTableView: UITableView!

var userData: [User] = [
User(name: "name1", email: "email1", age: 25),
User(name: "name2", email: "email2", age: 25),
User(name: "name3", email: "email3", age: 25)
]

var searchedUser = [User]()
var searchActive = false

override func viewDidLoad() {
super.viewDidLoad()

}


func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

let cell = dataTableView.dequeueReusableCell(withIdentifier: "userCell", for: indexPath) as! UsersTableViewCell

if searchActive {
cell.userName.text = self.searchedUser[indexPath.row].name // Maybe my error is that I'm just searching for their usernames, but that's what I want
} else {
cell.userName.text = self.userData[indexPath.row].name
}

return cell
}

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
if searchActive {
return self.searchedUser.count
} else {
return self.userData.count
}

}

}

extension UsersViewController: UISearchBarDelegate {
func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) {
searchedUser = userData.filter{(user) -> Bool in
return user.name.range(of: searchText, options: [ .caseInsensitive ]) != nil
}

searchActive = true

self.dataTableView.reloadData()
}
}

我做错了什么?

最佳答案

设置您的代表和数据源:

override func viewDidLoad() {
super.viewDidLoad()
dataTableView.delegate = self
dataTableView.dataSource = self
searchBar.delegate = self
}

关于ios - 如何使用来自 API 的数据搜索 tableview?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55321528/

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