so bin ich Filterung Daten (alle Strings), wollen und folgendes zeigen:Wie füge ich zwei Bereich <Index> zusammen?
- die Suchwörter, wo die ersten Buchstaben Ihrer Suche (Beispiel enthalten, wenn ‚Br‘ Suche alle Ich möchte sehen. die Wörter, die mit beginnen 'Br' wie Break, Broke, ...)
- Die Suchbegriffe, in denen die Zeichenfolge das Wort enthält (Beispiel. Bei der Suche nach 'Br' zeigt alle Wörter mit 'br' im Wort wie "Grundbrecher").
Ich habe sie beide separat zu arbeiten (siehe let found
und let foundMore
), aber jetzt möchte ich sie beide verschmelzen (zuerst die Suchwörter zeigt, wo die ersten Buchstaben Ihrer Suche enthält, nach denen in dem Die Zeichenfolge enthält das Wort). Erprobt mit dem Zusatzzeichen, aber es gibt den folgenden Fehler
Binärer Operator '+' kann nicht auf zwei 'Range?'
Operanden
extension SearchResultsController : UISearchResultsUpdating {
func updateSearchResultsForSearchController(searchController: UISearchController) {
self.tableView.reloadData()
let searchBar = searchController.searchBar
let target = searchBar.text!
self.filteredData = self.originalData.filter {
s in
let options = NSStringCompareOptions.AnchoredSearch
let found = s.rangeOfString(target, options: options)
let optionsMore = NSStringCompareOptions.CaseInsensitiveSearch
let foundMore = s.rangeOfString(target, options: optionsMore)
let allTogether = found + foundMore
return (allTogether != nil)
}
self.tableView.reloadData()
}
}
Hallo, das funktioniert, aber es filtert meine Daten nicht die Art, wie ich es will (überprüfen Sie 1. und 2., sollten sie so angesehen werden, nicht eine Mischung aus beidem). Es ist so, als würde ich es tun wollen.am Ende des ersten Arrays anhängen (wenn das Sinn macht) – SoundShock
@SoundShock Das ist auch machbar - siehe Bearbeiten. – dasblinkenlight
Danke, das ist genau das, was ich wollte! – SoundShock