我在过滤数组时遇到了一些麻烦。Swift - Filter array
我有这样的代码:
var names = [Name]()
var filteredNames = [Name]()
func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) {
if searchBar.text == nil || searchBar.text == ""{
inSearchMode = false
collectionView.reloadData()
view.endEditing(true)
} else {
inSearchMode = true
let lower = searchBar.text!.lowercased()
print(lower)
filteredNames = names.filter({$0.name.range(of: lower) != nil})
collectionView.reloadData()
}
}
的问题是,它似乎不正确看到字母。 我打印控制台名称阵列,该阵列filetredNames这里的searchBar.text上,结果如下:
怎么可能键入d当“铁饼”值不包括在内? 它与所有的信件发生(例如,铁饼返回结果为零等)
谢谢
当您进行范围比较时,您需要对'name'进行'lowercased'操作。 – paulvs