저는 초보자이며 일을 통해 학습합니다. 나는 tableview에 대학 목록을 만들었고 목록을 필터링하는 검색 창을 가지고있었습니다. 영어 글자는 아직 완벽하게 작동하지만 한국어 글자는 작동하지 않습니다.한국어 단어/문자 필터링 중입니까?
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()
}
한국어 문자를 .filter로 인식하는 방법을 아는 사람이 있습니까? 저의 대학은 다음과 같습니다.
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"]!))
반환 universities.sorted (가 더 많은,하지만 그들은 모두 같은 형식을 따릅니다) (기준 : {$ 0.name < $ 1.name}) } 이상하게
, 정렬() 메서드가 한국어 문자를 처리 할 수 있지만 필터 메서드가 중단되는 것처럼 보입니다. (한국어의 경우 영어는 괜찮습니다.)
파고다를 입력하면 모든 것을 걸러 내고 선택할 대학이 없습니다.
고마워요!
텍스트와 대학의 이름을 소문자로 변환하여 다음과 같이 비교해보십시오.'mod.name.lowercased(). contains (text.lowercased()) ' – the4kman
처음에 lowercased()를 사용했지만 그것을 제거했다. 나는 한국인이 필터링하지 않는 이유라고 생각했다. 한국인은 대문자 또는 소문자가 없기 때문이다. 다시 추가 하겠지만 문제는 아닙니다. 그래도 응답 주셔서 감사합니다! – Anthroman
질문하고자하는 대학의 이름과 검색 텍스트를 추가하십시오. – the4kman