过滤韩语单词/字符?

时间:2017-09-29 15:49:21

标签: ios xcode filter localization

我是初学者,通过做学习。我在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"]!))

return schools.sorted(by:{$ 0.name< $ 1.name})     }

奇怪的是,sorted()方法可以处理韩文字符,但似乎过滤方法正在崩溃。 (仅适用于韩文字符,英文字符很好)

因此,如果我输入파고다,它会过滤所有内容,并且没有大学可供选择。

非常感谢!

1 个答案:

答案 0 :(得分:1)

我假设您正在使用韩语键盘,当您键入파时,我假设您先按ㅍ然后按ㅏ。 (请原谅我,如果我对你如何在这里打字的具体细节错了;我的韩语非常糟糕,但我怀疑你正在做类似的事情。)

按ㅍ调用过滤器例程(因为它会更改文本字段)。没有字符串包含ㅍ,因此它删除了所有内容。然后按ㅏ然后它再次组成角色파并过滤,但一切都已经消失。

您不想继续重新分配filteredUniversities。您希望每次都在完整列表中进行过滤。这样,即使你没有得到任何东西,你也会获得파的列表。

如果您复制파고다然后将其粘贴到此字段中(而不是键入它),我打赌它可行,因为过滤例程只会被调用一次。