NSArray 안의 객체를 NSPredicate로 검색하기 [iOS]

개발을 하다보면 배열을 정말 많이 사용한다. 그리고 그 배열안에 있는 데이터를 추가/삭제도 많이 하고 그 배열 안에 데이터가 있는지 없는지 여부에 대해서도 많이 찾아 본다. 배열안에 있는 단순한 값들을 비교 할때는 – (BOOL)containsObject:(ObjectType)anObject; 를 사용하면 배열안에 포함되어있는 여부에 대해서 bool값으로 받을 수 있어 편하게 잘 쓸 수 있다.

 

하지만 배열안에 단순한 값이 아닌 객체가 들어있을경우는 사용 할 수가 없다.

스크린샷 2016-02-02 오후 8.24.49

이럴때는 두가지 방법이 있다. 하나는 for문등을 사용하여 배열안에 있는 값들을 다 하나씩 비교하여 해당 값을 비교하는 방법이랑

 

 NSPredicate를 사용하여 검색 조건을 텍스트로 입력하여 검색하는 방법이 있다. 물론 NSPredicate를 사용하는 방법이 훨씬 깔끔하고 조건이 중첩되거나 유지보수 할때 훨씬 편하다.

NSPredicate를 사용하면 객체 안의 값을 찾거나 여러 중복 조건등 사용하기가 매우 편하지만 처음에 검색 문법을 배우는게 조금 어렵다. 해당 검색 조건에 애플 가이드 문서를 보면 자세히 나와있다.

 

 

예제 다운로드

답글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다.