我已经搜索了几个小时,但看不到解决方案...我正在使用输入到 UISearchBar 中的文本来过滤自定义对象数组,以更改下面表格 View 中的数据。 经过一番调试后,我找到了问题的根源:
func searchBar(searchBar: UISearchBar, textDidChange searchText: String) {
var temp = "c"
FilterResults = SearchResults.filter {
return $0.Username.rangeOfString(temp) != nil
}
}
这是我的麻烦:如果我使用了上面明确定义的 temp ,其中 temp = "c",它会很高兴地匹配所有包含 c 的用户名!当我不使用 temp 而是使用变量 searchText 时,就会出现问题,在这种情况下,它永远不会与任何内容匹配!我检查了一下,searchText 不为空,事实上,我在测试中打印出了 searchText,它打印出了一个正常的字符串(基于搜索栏中输入的内容),但由于某些疯狂的原因,如果我在 . rangeOfString 方法,它总是返回 false!这是为什么?我也使用过 searchBar.text ,它给了我同样的麻烦......我完全迷失和沮丧。任何帮助将不胜感激!
最佳答案
试试这个,如果有效的话。
var searchList = [String]()
let searchPredicate = NSPredicate(format: "SELF CONTAINS[c] %@", searchText!)
let array = (searchList as NSArray).filteredArrayUsingPredicate(searchPredicate) as! [String]
关于string - UISearchBar textDidChange,searchtext 变量无法与 rangeOfString 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37825157/