ios 我如何在swift 5中过滤数组以在搜索栏中搜索文本?

bweufnob  于 2022-11-19  发布在  iOS
关注(0)|答案(2)|浏览(106)

我打算从tableview中搜索,为此我使用了array.filter(),但我无法得到任何与函数参数相关的建议,我得到了“NSArray.Element self”,如何将我所需的参数添加到函数中。我无法在参数中获得任何函数,如“prefix”或“replaceString”,因此我如何解决此问题?
这是我代码,

extension ViewController: UISearchBarDelegate
{
    func searchBar(_ searchBar: UISearchBar, textDidChange searchText:String)
{
searchCoin = ArrData.filter ({ $0.prefix(searchText.count) == searchText})
tableView.reloadData()
}
}
xqnpmsa8

xqnpmsa81#

检查数组中是否有任何字符串元素包含搜索文本。无论是前缀、后缀还是字符串之间的文本

extension ViewController: UISearchBarDelegate
{
    func searchBar(_ searchBar: UISearchBar, textDidChange searchText:String)
    {
       searchCoin = ArrData.filter({ $0.contains(find: searchText)})
       tableView.reloadData()
    }
}


若要检查数组中的任何字串元素是否具有相等搜寻文字的前置词

extension ViewController: UISearchBarDelegate
{
    func searchBar(_ searchBar: UISearchBar, textDidChange searchText:String)
    {
       searchCoin = ArrData.filter({ $0.hasPrefix(searchText)})
       tableView.reloadData()
    }
}
7uzetpgm

7uzetpgm2#

Swati是正确的。Swift 5的语法略有不同,但基本上是这样的。searchCoin是一个新的数组过滤器,用于过滤您正在搜索的原始数据数组。

let searchCoin = dataArray.filter({ $0.contains(searchText!)})

相关问题