반응형
최초 작성일 : 2012/04/13 10:12
일반적인 관계형 DBMS의 쿼리에서 where절의 역할을 하는 것이
코어 데이터의 NSPredicate 객체이다.
대체로 문법이 비슷하긴 하지만 아무래도 복잡한 쿼리를 구성하기에는 좀 답답한
감이 있다.
더구나 다음과 같은 케이스는 불필요한 코딩만 늘리는 것 같은데 이렇게 해야 한단다...-.-
NSPredicate를 이용한 like문은 대략 다음과 같다.
우선 일반적인 쿼리에서 like문에 사용하는 %는 CoreData는 *로 사용한다.
NSPredicate *predicate;
NSString *searchStr = [NSString stringWithFormat:@"*%@*", toMail];
predicate = [NSPredicate predicateWithFormat:@"%K LIKE[cd] %@ and %K LIKE[cd] %@",
attributeName, self.mailAddress, attributeName2, searchStr];
보시는 바와같이 그냥
predicate = [NSPredicate predicateWithFormat:@"%K LIKE[cd] %@ and %K LIKE[cd] *%@*",
attributeName, self.mailAddress, attributeName2, toMail];
이렇게 하면 될 것 같은데 위의 문장으로 해야만 검색이 정상적으로 이루어진다...-.-
*참고 :
LIKE[cd]에서 cd의 의미는 다음과 같다.
'cd'
means case-insensitive and diacritic-insensitive.즉, 대소문자 구분 안하고. 발음기호 구분 안한다는 의미이다.
반응형
'Development > iPhone' 카테고리의 다른 글
[옛 글] 애플 엔터프라이즈 개발자 계정 - 배포용 인증서 갱신에 대한 문답 (0) | 2013.07.19 |
---|---|
[옛 글] [Xcode] 소스 관리하기~ (0) | 2013.07.19 |
[옛 글] [CoreData] Relationship에 관한 Tip - 연관된 Entity 함께 지우기 (0) | 2013.07.19 |
[옛 글] [Xcode 4.2] ARC 사용시 변경 내용 (0) | 2013.07.19 |
[옛 글] [Xcode 4.2] 오늘의 삽질 - 스토리 보드에서 rootViewController 지정 (0) | 2013.07.19 |