Я хочу выполнить поиск номера телефона в sqlite db. Телефонная таблица имеет числовое поле, которое содержит строковое значение (например: +1 (2-34) 56-78).Запрос на выборку Coredata с использованием NSPredicate
Если пользователь вводит текст поиска как «234», мне нужно получить телефонные номера только с цифрами (исключая все другие алфавиты или специальные символы в сохраненной строке) с использованием NSPredicate и сравнить его с введенной строкой. Должны ли мы это сделать, используя предикат в запросе выборки?
Я попытался с следующим предикатом и оно не вернуть мне ожидаемый результат:
NSPredicate * предикат = [NSPredicate predicateWithFormat: @ "CONTACTNAME = нуль и подзапрос (phoneList, $ телефон, ANY $ phone.number СОДЕРЖИТ [c]% @). @ count> 0 ", searchText];
Есть ли способ сделать это? Могу ли я использовать регулярное выражение с nspredicate для этого?
Есть ли у телефона один номер или число ко многим? – Willeke
Телефонный стол имеет два поля: номер и ярлык. У контакта может быть много телефонных номеров. Таким образом, здесь «phoneList» - это много отношений «Контакт» с телефонным столом. Я пытаюсь найти контакты со строкой поиска в качестве номера телефона. – JamesDon
SUBQUERY и ЛЮБОЙ ОБРАБОТКИ относятся ко многим. Попробуйте формат '" contactName! = Null И ЛЮБОЙ номер телефонаList.number CONTAINS [c]% @ ", searchText'. – Willeke