Предикат строки поиска

Я пытаюсь создать поисковый запрос, используя 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

Другие вопросы по тегам