首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iOS - searchBar,错误

iOS - searchBar,错误
EN

Stack Overflow用户
提问于 2017-03-07 10:41:32
回答 2查看 888关注 0票数 0

我试图在searchBar中实现tableView,但是我得到了这个错误。我想不出怎么把它移走。

代码语言:javascript
复制
func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) {
    searchingDataArray = origanalArray.filter({ (text) -> Bool in
        let tmp: String = text
        let range = tmp.range(of: searchText, options: NSString.CompareOptions.caseInsensitive)
        return range.location != NSNotFound
    })
    if (searchingDataArray.count == 0) {
        searching = false
    } else {
        searching = true
    }
    self.tableView.reloadData()
}

此错误出现在代码的第5行,听起来如下所示:类型范围的值string.index没有成员位置

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-12-11 07:34:40

更新为Swift 3:

使用代码行;

代码语言:javascript
复制
// MARK:- Varirabl Declartion

@IBOutlet weak var mSearchBar: UISearchBar!
@IBOutlet weak var mTableView: UITableView!

var isSearch : Bool = false
var arrCountry = ["Afghanistan", "Algeria", "Bahrain","Brazil", "Cuba", "Denmark","Denmark", "Georgia", "Hong Kong", "Iceland", "India", "Japan", "Kuwait", "Nepal"]
var arrFilter:[String] = []

//标记: UISearchBar代表方法

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

    if searchText.characters.count == 0 {
        isSearch = false;
        self.mTableView.reloadData()
    } else {
        arrFilter = arrCountry.filter({ (text) -> Bool in
            let tmp: NSString = text as NSString
            let range = tmp.range(of: searchText, options: NSString.CompareOptions.caseInsensitive)
            return range.location != NSNotFound
        })
        if(arrFilter.count == 0){
            isSearch = false;
        } else {
            isSearch = true;
        }
        self.mTableView.reloadData()
    }
}
票数 2
EN

Stack Overflow用户

发布于 2017-03-07 10:49:56

试试这个可能对你有帮助:

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

    filtered = data.filter({ (text) -> Bool in
        let tmp: NSString = text
        let range = tmp.rangeOfString(searchText, options: NSStringCompareOptions.CaseInsensitiveSearch)
        return range.location != NSNotFound
    })
    if(filtered.count == 0){
        searchActive = false;
    } else {
        searchActive = true;
    }
    self.tableView.reloadData()
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42646086

复制
相关文章

相似问题

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