2017-01-24 1 views
1

In meiner Anwendung verwende ich eine Suche, die gut funktioniert, aber ich brauche einen Rat. Ich weiß nicht, wie man das macht, wenn ich nach Text ohne diakritische Zeichen suche, was auch mit diakritischen Zeichen geschieht. Beispiel: Geben Sie eine Suche holeSovice, ich muss holeSovice und auch holešovice finden.swift 3 - Suchergebnis auch mit diakritischen Zeichen

Hier ist ein Teil meines Code:

func filterContentForSearchText(_ searchText: String) { 
     filteredERequests = requests.filter({(request : CityRequest) -> Bool in 

      return request.cityName.lowercased().contains(searchText.lowercased()) 

     }) 
     myTable.reloadData() 
    } 

Antwort

4

Sie können range(of:, options:) mit Optionen für eine diakritische unempfindlich (und optional Groß- und Kleinschreibung) Suche verwenden. Beispiel:

let list = ["holesovice", "holešovice"] 
let searchTerm = "sovi" 

let filtered = list.filter { 
    $0.range(of: searchTerm, options: [.diacriticInsensitive, .caseInsensitive]) != nil 
} 

print(filtered) // ["holesovice", "holešovice"] 
+0

Danke für den Rat, aber ehrlich gesagt verstehe ich nicht, wie es zu benutzen in meinem Code ... :( – Alien

+1

@Alien: Und ich kann Ihren Code nicht kompilieren, weil es nicht in sich geschlossen ist:) - Aber es sollte so etwas wie 'return request.cityName.range (von: searchText, options: [.diacriticInsensitive, .caseInsensitive])! = Nil' in Ihrem closure sein. –

+0

Ich bin Esel: D. Vielen Dank! – Alien

Verwandte Themen