我正在尝试通过使用 .contains 方法将所有字符串都小写来消除大写/小写搜索的差异。另外,我正在与土耳其语打交道,所以我们将大写的“ i”字符大写。但是似乎只要 .lowercase 小写的“İ” UISearchBar无法识别它。
例如;我的数据库中有“BİLGİ”字样。如果我尝试像“ Bilgi”那样搜索它,它将不会出现在tableView中。必须写“Bİlgİ”才能得到它。除“ i”外,其他所有字符均工作正常。它与我的数据库语言首选项有关还是与.contains或.lowercase方法有关。
编辑。
here is the code part I'm dealing with
我也在数据库中使用UTF32.turkish。
编辑。
我玩了一点,然后找出whats wrong。有人知道解决方案吗?
答案 0 :(得分:0)
重要
在处理呈现给用户的文本时,请使用:
localizedStandardContains(_:) or localizedCaseInsensitiveContains(_:) instead.
答案 1 :(得分:0)
解决方案:
由于我要处理土耳其语“ i”字符,因此我使用tr(土耳其语)标识符。
let upperString = myString.uppercased(with: Locale(identifier: "tr"))
let lowerString = myString.lowercased(with: Locale(identifier: "tr"))