在我的应用程序中,我使用的搜索效果很好,但是我需要建议。当我搜索不带变音符号的文本时,我不知道该怎么办,因为结果也带有变音符号。 示例: 输入搜索Holeovice,我需要找到 Holeovice 以及 Holešovice 。
这是我的代码的一部分:
func filterContentForSearchText(_ searchText: String) { filteredERequests = requests.filter({( request : CityRequest) -> Bool in return request.cityName.lowercased().contains(searchText.lowercased()) }) myTable.reloadData() }
您可以将range(of:, options:)选项与变音符号不敏感(还可以选择不区分大小写)一起使用。例:
range(of:, options:)
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"]