Я создал строку поиска в Xcode с помощью Swift 3. Я получаю данные через api. Однако, пока я ищу курсор, уходит. Не только это, но до того, как я положил задержку, я мог набирать только одну букву. Я не уверен, был ли это мой код, асинхронный или что.Проблема с UISearchField при фильтрации табличного вида
Так что я нашел эту статью (http://shrikar.com/swift-ios-tutorial-uisearchbar-and-uisearchbardelegate/)
Проблема у меня есть эта часть в Swift 3:
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()
}
Так что я использовал документацию и обнаружили:
static var caseInsensitive: NSString.CompareOptions
Мой вопрос: как я это интерпретирую? Это должно означать, что caseInsensitive
является типом String.CompareOptions
?
Я устанавливаю это на опции: caseInsensitive: String.CompareOptions
?
Я так новичок в этом. Я знаю питона, и это все, но я люблю изучать эти новые языки.
Еще лучше: 'let range = tmp.range (of: searchText, options: .caseInsensitive)' – rmaddy