Ich bin ein Anfänger und durch Lernen lernen. Ich machte eine Liste von Universitäten in einer Tabellenansicht und ich hatte eine Suchleiste, um die Liste zu filtern. Es funktioniert immer noch perfekt mit englischen Buchstaben, aber nicht mit den koreanischen Buchstaben.Koreanische Wörter/Zeichen filtern?
var filteredUniversities = University.generateUniversities()
override func viewDidLoad() {
super.viewDidLoad()
self.searchBarSetup()
}
func searchBarSetup() {
let searchBar = UISearchBar(frame: CGRect(x: 0, y: 0, width: (UIScreen.main.bounds.width), height: 70))
searchBar.delegate = self
self.tableView.tableHeaderView = searchBar
}
//MARK: Search Bar Delegate
func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) {
//called when text changes (or clears)
if searchText.isEmpty {
filteredUniversities = University.generateUniversities()
self.tableView.reloadData()
}else {
filterTableView(text: searchText)
}
}
func filterTableView(text:String) {
filteredUniversities = filteredUniversities.filter({ (mod) -> Bool in
return (mod.name.contains(text))
})
self.tableView.reloadData()
}
Weiß jemand, wie man das .filter koreanische Buchstaben erkennen lässt? Meine Universitäten sind wie folgt aufgeführt. (Es gibt viele mehr, aber sie alle folgen dem gleichen Format)
class func generateUniversities() -> [University]{
var universities: [University] = []
universities.append(University(name: "파고다 어학원", location: "부산", photo: UniversityPhotoDictionary["PAG"]!))
universities.append(University(name: "부산대학교", location: "부산", photo: UniversityPhotoDictionary["PNU"]!))
universities.append(University(name: "동아대학교", location: "부산", photo: UniversityPhotoDictionary["DAU"]!))
Rückkehr universities.sorted (nach: {$ 0.name < $ 1.name}) }
Seltsam, die sortiert() Methode kann die koreanischen Zeichen verarbeiten, aber es scheint, als ob die Filtermethode zusammenbricht. (nur für koreanische Schriftzeichen, die englischen sind in Ordnung)
Also wenn ich 파고다 eintippe, filtert es alles aus und es gibt keine Universitäten zur Auswahl.
Vielen Dank!
Versuchen Sie, sowohl den Text als auch den Namen der Universität in Kleinbuchstaben umzuwandeln und vergleichen Sie sie so: 'mod.name.lowercased(). Enthält (text.lowercased())' – the4kman
Ich hatte zuerst die Kleinbuchstaben(), aber dann entfernt es. Ich dachte, dies könnte der Grund sein, warum der Koreaner nicht filterte, da Koreanisch kein oberes oder unteres Gehäuse hat. Ich füge es zurück, aber das ist nicht das Problem. Danke für die Antwort! – Anthroman
Bitte geben Sie den Namen der Universitäten und Ihren Suchtext zu Ihrer Frage an. – the4kman