Предикат строки поиска
Я пытаюсь создать поисковый запрос, используя NSMetaDataQuery и развертывая предикат, как показано ниже:
NSString * format = @"kMDItemDisplayName like[cd] %@";
NSPredicate * compPred = [NSPredicate predicateWithFormat:format,[NSString stringWithFormat:@"%@*",self.searchString]];
Проблема, с которой я сталкиваюсь:
Предположим, у меня есть приложение по имени: Google Chrome.
Если я ищу "google" в качестве строки поиска, я могу получить результат, например "Google Chrome", но если я ищу "chrome", я не могу искать "Google Chrome".
Точно так же, если строка поиска - "Suhail", результат отображения - "Suhail никого не ненавидит", но если строка поиска - "ненавидит", результат не показывает ничего.
Еще один случай: предположим, что имя файла "faMee".
Я ищу "Amee", результат ничего. Я ищу "mee", результат - ничто, но в центре внимания я ищу "mee", он показывает мне файл "faMee".
Любые предложения, пожалуйста.
2 ответа
NSPredicate * compPred = [NSPredicate predicateWithFormat:format,[NSString stringWithFormat:@"*%@*",self.searchString]];
Попробуй это
Ну, а не "как" в вашем запросе, используйте "содержит". Пожалуйста, ознакомьтесь с документацией NSPredicate Apple и ознакомьтесь с примерами запросов.
Mohsin