过滤表视图时遇到UISearchField问题

时间:2016-12-16 03:54:21

标签: ios swift uisearchbar

我使用Swift 3在Xcode中创建了一个搜索栏。我通过api获取数据。但是,当我搜索光标消失时。不仅如此,在我延迟之前,我只能输入一个字母。我不确定这是我的代码,异步还是什么。

所以我找到了这篇文章(http://shrikar.com/swift-ios-tutorial-uisearchbar-and-uisearchbardelegate/

我遇到的问题是Swift 3中的这一部分:

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()
}

所以我使用了文档并找到了:

static var caseInsensitive: NSString.CompareOptions

我的问题是如何解释这个?这应该意味着caseInsensitive类型为String.CompareOptions

我是否将其叠加在选项上:caseInsensitive: String.CompareOptions

我真的很陌生。我知道python和它有关,但我喜欢学习这些新语言。

1 个答案:

答案 0 :(得分:1)

哇,至少现在我理解文档了。大声笑我把它改为:

let range = tmp.range(of: searchText, options: NSString.CompareOptions.caseInsensitive)