Swift 4 UISearchBar не может распознать нижний регистр 'i' - PullRequest
0 голосов
/ 11 октября 2018

Я пытаюсь устранить разницу в поиске в верхнем и нижнем регистре, используя все строки при использовании метода .contains .Также я имею дело с турецким языком, поэтому у нас есть заглавная буква «и».Но, кажется, всякий раз, когда .lowercase строчные буквы "İ" UISearchBar не может его распознать.

Например;У меня есть слово "BİLGİ" в моей базе данных.Если я попытаюсь найти его как "Bilgi", он не появится в tableView.Нужно написать "Bİlgİ", чтобы получить его.Любой другой персонаж работает отлично, но "я".Это связано с моими настройками языка базы данных или это что-то с методами .contains или .lowercase.

edit.

Вот часть кода, с которой я имею дело

Также я использую UTF32.turkish в базе данных.

edit.

Я немного поиграл и выяснил что не так с ним,Кто-нибудь знает решение?

Ответы [ 2 ]

0 голосов
/ 11 октября 2018

Решение:

Поскольку я имею дело с турецким символом "i", я использую tr (турецкий) идентификатор.

let upperString = myString.uppercased(with: Locale(identifier: "tr"))

let lowerString = myString.lowercased(with: Locale(identifier: "tr"))

0 голосов
/ 11 октября 2018

Важно

При работе с текстом, представленным пользователю, используйте: localizedStandardContains(_:) or localizedCaseInsensitiveContains(_:) instead.

...