我在過濾數組時遇到了一些麻煩。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