iOS: как избежать ввода специальных символов в строку поиска? - PullRequest
1 голос
/ 11 февраля 2012

Возможно, я смотрю на это неправильно, но сейчас, если пользователь вводит определенные специальные символы в строке поиска, приложение вылетает. К ним относятся \ и '.

Апостроф является проблемой, в таких словах, как "не" и "не", произойдет сбой

Как мне решить эту проблему?

Большое спасибо

Ответы [ 3 ]

2 голосов
/ 11 февраля 2012

Почему бы вам не убежать от символов и не найти то, что хочет пользователь, вместо того, чтобы игнорировать или удалять то, что он хочет?

Вы используете SQLite? Если так, то вы можете избежать одной кавычки другой кавычкой.

2 голосов
/ 11 февраля 2012

Перед выполнением поиска с использованием строки поиска предварительно отфильтруйте ее следующим образом:

NSString *safeSearchString = [[searchString componentsSeparatedByCharactersInSet:[[NSCharacterSet alphanumericCharacterSet] invertedSet]] componentsJoinedByString:@""];
1 голос
/ 11 февраля 2012

UISearchBar использует протокол UISearchBarDelegate .Чтобы запретить пользователям вводить \ и 'все, что вам нужно сделать, это переопределить метод searchBar:shouldChangeTextInRange:replacementText:, и если вы чувствуете специальные символы в тексте, вы просто возвращаете NO.

Но обработка (а не игнорирование) эти специальные символы в вашей программе - лучший пользовательский опыт.В конце концов, почему вы, пользователи, вообще ищете слова «не» и «не»?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...