首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用swift xcode返回自动提示搜索

使用swift xcode返回自动提示搜索
EN

Stack Overflow用户
提问于 2018-04-20 04:20:12
回答 2查看 36关注 0票数 0

我有一个搜索栏,可以过滤菜谱标题的xml数组。问题是我必须搜索整个标题,否则我看不到建议的结果。例如,如果我有“全麦华夫饼”和“全麦面包”,输入“and”不会返回任何东西。输入“全麦华夫饼”返回成功。这是searchBar函数

代码语言:javascript
复制
func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) {

    if searchBar.text == nil || searchBar.text == "" {
        isSearching = false
        view.endEditing(true)
        myTableView.reloadData()
    } else {
        isSearching = true
        filteredData = tableViewDataSource.filter({$0.title == searchBar.text})
        myTableView.reloadData()
    }

}

我非常确定解决方案与区分大小写以及在设置filteredData时返回某些字符有关。提前感谢您的帮助

EN

回答 2

Stack Overflow用户

发布于 2018-04-20 04:25:50

如果要搜索以搜索文本开头的字符串,可以使用contains过滤数组中包含文本的任何项,也可以使用hasPrefix

就像这样,

代码语言:javascript
复制
filteredData  = tableViewDataSource.filter { $0.title.contains(searchBar.text) ?? "" }

或,

代码语言:javascript
复制
filteredData = tableViewDataSource.filter { $0.title.hasPrefix(searchBar.text) ?? "" }
票数 1
EN

Stack Overflow用户

发布于 2018-04-20 05:06:33

在我的情况下,使用range是可行的

代码语言:javascript
复制
filteredData = tableViewDataSource.filter({$0.title.range(of: searchBar.text!) != nil})
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49929584

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档