Различаются между двумя символами в Swift (цитата против смарт / цитата) - PullRequest
0 голосов
/ 25 марта 2020

Мне нужно отфильтровать массив словаря на основе строки поиска. В словаре у меня есть ключ «имя», мне нужно сравнить введенную строку в текстовом поле с ключом имени в словаре.

func textChanged(textField: UITextField) {
    if textField.text == "" {
        self.filteredArrayStoreList = self.arrayStoreList
    } else {
        self.filteredArrayStoreList.removeAll()
        print("Text: \(textField.text ?? "")")
        let filteredArray = self.arrayStoreList.filter { ($0.name?.contains((textField.text ?? "")))!}
        self.filteredArrayStoreList = filteredArray
        self.noLocationFoundView.isHidden = true //filteredArrayStoreList.count == 0
    }
    self.searchLocationTabelView.reloadData()
}

В словаре значением ключа имени является «Vimal's». Но в текстовом поле я получу текст как "Vimal's". Как искать одинарные кавычки.

1 Ответ

3 голосов
/ 25 марта 2020

' (ascii-39) - нормальная кавычка, а ' (ascii-8216) называется «умной» или «кудрявой» цитатой. эта цитата отображается на клавиатуре устройства iOS. Пользователь может включить / отключить эту функцию в настройках

Настройки -> Общие -> Клавиатура -> Интеллектуальная пунктуация

Это причина того, что эти две строки не совпадают. Вы можете сделать 2 вещи, чтобы решить вашу проблему. Поскольку мы не знаем, какое устройство пользователя приложения включает / выключает эту функцию

  1. , просто вы можете вводить словарные имена без специальных символов
  2. , вы можете найти и заменить эту цитату smart / curl обычной цитата перед проверкой

это пример

let name:String = "vimal‘s" 
print(name.replacingOccurrences(of: "‘", with: "'"))
//result "vimal's"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...