2016-12-16 2 views
0

Я создал строку поиска в 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?

Я так новичок в этом. Я знаю питона, и это все, но я люблю изучать эти новые языки.

ответ

1

Ничего себе, по крайней мере, сейчас я понимаю документацию. lol Я изменил его на:

let range = tmp.range(of: searchText, options: NSString.CompareOptions.caseInsensitive) 
+0

Еще лучше: 'let range = tmp.range (of: searchText, options: .caseInsensitive)' – rmaddy

Смежные вопросы