gpt4 book ai didi

ios - 使用小写字母和数组过滤搜索文本的内容

转载 作者:行者123 更新时间:2023-11-28 10:35:02 24 4
gpt4 key购买 nike

我在 firestore 中有 cities: [String] 的结构

struct CityList {
var country: String
var cities: [String]
}

在 firestore 中的结构看起来像在

1
country: Russia
cities: ["Moscow", "Saint-Petersburg"]
2
country: USA
cities: ["New York", "Los Angeles"]

当我使用 searchController 时,我需要使用字符串过滤数组 cities: [String]。现在我有了 func filterContentForSearchText

private func filterContentForSearchText(_ searchText: String) {
filteredCityList = cityList.filter({ (cityList: CityList) -> Bool in
return cityList.cities[0].lowercased().contains(searchText.lowercased())
})
tableView.reloadData()
}

我知道我的错误是 -> cities[0],但我不知道如何解决...

当我在 searchController 中写入文本时,searchController 仅搜索第一个城市,即莫斯科纽约

如何搜索莫斯科、圣彼得堡、纽约和洛杉矶

最佳答案

所以您的 cities[0] 只取第一个城市,我假设您需要搜索所有城市,所以我会检查 cities.contains。我还会使用 localizedCaseInsensitiveContains 而不是手动小写。

cities.contains {
$0.localizedCaseInsensitiveContains(searchText)
}

过滤器将是:

cityList.filter { list in
list.cities.contains { city in
city.localizedCaseInsensitiveContains(searchText)
}
}

关于ios - 使用小写字母和数组过滤搜索文本的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53943517/

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