UISearchBar textDidChange,searchtext变量无法使用rangeOfString?

时间:2016-06-15 02:33:58

标签: string swift uisearchbar

我一直在搜索几个小时,看不到任何解决方案...我正在使用键入UISearchBar的文本过滤一组自定义对象,以更改下面的tableview中的数据。 经过一些调试后,ive pin指出了我的麻烦来源:

func searchBar(searchBar: UISearchBar, textDidChange searchText: String) {
    var temp = "c"
    FilterResults = SearchResults.filter {
    return $0.Username.rangeOfString(temp) != nil
    }

    }

这是我的麻烦:如果我使用了如上所述明确定义的临时值,其中temp =" c",它很乐意匹配其中包含c的所有用户名!问题出现时,我使用变量searchText而不是使用temp,在这种情况下它永远不会与任何东西匹配!我检查并且searchText不为null,实际上我在测试中打印出了searchText,它打印出一个普通的字符串(根据搜索栏中输入的内容),但出于某些疯狂的原因,如果我在里面使用searchText变量。 rangeOfString方法,它总是返回false!这是为什么?我也使用过searchBar.text,它给了我同样的麻烦......我完全迷失了,感到沮丧。任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:0)

如果有效,请尝试此操作。

var searchList = [String]()
let searchPredicate = NSPredicate(format: "SELF CONTAINS[c] %@", searchText!)
let array = (searchList as NSArray).filteredArrayUsingPredicate(searchPredicate) as! [String]

答案 1 :(得分:0)

原来是因为我没有意识到rangeOfString搜索区分大小写!