iOS - 搜索栏,错误
iOS - searchBar, Error
我试图在 tableView 中实现 searchBar,但出现此错误。我不知道如何删除它。
func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) {
searchingDataArray = origanalArray.filter({ (text) -> Bool in
let tmp: String = text
let range = tmp.range(of: searchText, options: NSString.CompareOptions.caseInsensitive)
return range.location != NSNotFound
})
if (searchingDataArray.count == 0) {
searching = false
} else {
searching = true
}
self.tableView.reloadData()
}
这个错误出现在代码的第 5 行,听起来像这样:Value of type range string.index has no member location
试试这个可能对你有帮助:
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()
}
Updated for Swift 3:
使用代码行;
// MARK:- Varirabl Declartion
@IBOutlet weak var mSearchBar: UISearchBar!
@IBOutlet weak var mTableView: UITableView!
var isSearch : Bool = false
var arrCountry = ["Afghanistan", "Algeria", "Bahrain","Brazil", "Cuba", "Denmark","Denmark", "Georgia", "Hong Kong", "Iceland", "India", "Japan", "Kuwait", "Nepal"]
var arrFilter:[String] = []
//标记:UISearchBar 委托方法
func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) {
if searchText.characters.count == 0 {
isSearch = false;
self.mTableView.reloadData()
} else {
arrFilter = arrCountry.filter({ (text) -> Bool in
let tmp: NSString = text as NSString
let range = tmp.range(of: searchText, options: NSString.CompareOptions.caseInsensitive)
return range.location != NSNotFound
})
if(arrFilter.count == 0){
isSearch = false;
} else {
isSearch = true;
}
self.mTableView.reloadData()
}
}
我试图在 tableView 中实现 searchBar,但出现此错误。我不知道如何删除它。
func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) {
searchingDataArray = origanalArray.filter({ (text) -> Bool in
let tmp: String = text
let range = tmp.range(of: searchText, options: NSString.CompareOptions.caseInsensitive)
return range.location != NSNotFound
})
if (searchingDataArray.count == 0) {
searching = false
} else {
searching = true
}
self.tableView.reloadData()
}
这个错误出现在代码的第 5 行,听起来像这样:Value of type range string.index has no member location
试试这个可能对你有帮助:
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()
}
Updated for Swift 3:
使用代码行;
// MARK:- Varirabl Declartion
@IBOutlet weak var mSearchBar: UISearchBar!
@IBOutlet weak var mTableView: UITableView!
var isSearch : Bool = false
var arrCountry = ["Afghanistan", "Algeria", "Bahrain","Brazil", "Cuba", "Denmark","Denmark", "Georgia", "Hong Kong", "Iceland", "India", "Japan", "Kuwait", "Nepal"]
var arrFilter:[String] = []
//标记:UISearchBar 委托方法
func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) {
if searchText.characters.count == 0 {
isSearch = false;
self.mTableView.reloadData()
} else {
arrFilter = arrCountry.filter({ (text) -> Bool in
let tmp: NSString = text as NSString
let range = tmp.range(of: searchText, options: NSString.CompareOptions.caseInsensitive)
return range.location != NSNotFound
})
if(arrFilter.count == 0){
isSearch = false;
} else {
isSearch = true;
}
self.mTableView.reloadData()
}
}