sqlite db에서 전화 번호 검색을 수행하고 싶습니다. 전화 테이블에는 문자열 값을 보유하는 숫자 필드가 있습니다 (예 : +1 (2-34) 56-78).NSPredicate를 사용하여 Coredata 가져 오기 요청
사용자가 검색 텍스트를 "234"로 입력하면 NSPredicate를 사용하여 숫자만으로 전화 번호를 가져와야합니다 (다른 모든 알파벳 또는 특수 문자가 저장된 문자열에서 제거됨) 그리고 입력 된 문자열과 비교해야합니다. 가져 오기 요청에서 조건자를 사용하여이 작업을 수행할까요?
나는 다음과 같은 조건으로 시도하고 나에게 예상 된 결과 반환 나던 : 이자 NSPredicate *이 조건은 = [자 NSPredicate predicateWithFormat가! 연락처 이름이 = NULL과 하위 쿼리 (phoneList는 $ 전화가 어떠한 $의 phone.number에 포함 된 "@를 [c] % @). @ count> 0 ", searchText];
이 작업을 수행 할 수있는 방법이 있습니까? 이것을 위해 nspredicate와 함께 정규 표현식을 사용할 수 있습니까?
전화 번호가 하나 또는 숫자 일대 다 관계입니까? – Willeke
전화 테이블에는 번호와 레이블이라는 두 개의 필드가 있습니다. 연락처에는 많은 전화 번호가있을 수 있습니다. 그래서 여기 'phoneList'는 연락처와 전화 테이블 간의 많은 관계입니다. 전화 번호로 검색 문자열이있는 연락처를 가져 오는 중입니다. – JamesDon
SUBQUERY 및 ANY는 모두 다 대다 관계를 처리합니다. ''contactName! = null 형식을 사용해보십시오. 그리고 어떤 phoneList.number도 포함되어 있습니다. [c] % @ ", searchText'. – Willeke