Wah*_*hib 0 filter uitableview uisearchbar swift
我有一个结构:
struct AlimentObject {
var id = UUID().uuidString
var nomAliment = "Nouvel aliment"
var poids : Float = 100
var calories : Float = 0
}
Run Code Online (Sandbox Code Playgroud)
以及由 AlimentObjet 组成的数组:
var filteredData: [AlimentObject]!
Run Code Online (Sandbox Code Playgroud)
我有一个表格视图的搜索栏,但我不知道如何搜索“nomAliment”中的字符,这里是搜索栏的代码:
extension AjoutAlimentController: UISearchBarDelegate {
func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) {
filteredData = []
for aliment in data {
if aliment.nomAliment.lowercased().contains(searchText.lowercased) {
filteredData.append(aliment)
}
}
self.tableView.reloadData()
}
}
Run Code Online (Sandbox Code Playgroud)
错误说:类型 '() -> String' 不能符合 'StringProtocol'; 只有结构/枚举/类类型可以符合它在行中的协议:
if aliment.nomAliment.lowercased().contains(searchText.lowercased) {
Run Code Online (Sandbox Code Playgroud)
您在()第二个 之后丢失了lowercased,因此不是执行lowercased函数并将返回的字符串传递给contains(),而是传入一个类型为'() -> String' 的函数。
解决方法很简单,就是:
if aliment.nomAliment.lowercased().contains(searchText.lowercased()) {
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
41 次 |
| 最近记录: |