2011-08-02 4 views
1

난 내가 검색 창에이 사용하고자 NSPredicate 아이폰 질문

NSPredicate* predicate = [NSPredicate predicateWithFormat:@"Word== %@", randomWord]; 
rows = [[courseArray filteredArrayUsingPredicate:predicate]retain]; 

다음과 같은 코드가 있습니다. 두 가지 질문이 있습니다 - NSPredicate를 만들어서 어떻게 다른 값을 가지기보다는 문자로 시작하는 모든 단어를 취할 수 있습니까? 예를 들어 나는 "Men, Many, Morons, Now, Never"를 배열에 넣었고 "M"을 입력하면 "Men, Many, Morons"을 추가 할 수 있습니다. 또한, 어떻게 하나 이상의 값을 조건으로 삼을 수 있습니까? 그래서 두 가지 형식을 비교합니다.

덕분에 ... 문자열 상수, 변수, 및 와일드 카드 섹션에서 '접두사'부분

답변

1

NSPredicate 문서 시작하기에 좋은 장소입니다 ... 당신이 CONTAINS을 시도 할 수 NSPredicate *predicate = [NSPredicate predicateWithFormat:@"Word BEGINSWITH %@", randomWord];

을보십시오. 또 다른 [NSPredicate predicateWithFormat:@"Word BEGINSWITH %@"]

입니다 그리고 지금까지이 조건을 확인하는 등, 당신이 NSCompoundPredicate 찾고 함께 문자열이 시작하는 경우

술어

확인합니다.

1

비교할 모든 조건자를 작성하고 모든 조건자를 배열에 추가해야합니다. 그 후에 or, and 조건에 NSCompoundPredicate을 사용할 수 있습니다. 그

NSPredicate *finalPredicate = [NSCompoundPredicate andPredicateWithSubpredicates:@[[NSPredicate predicateWithFormat:@"is_neutered = 0"], 
    [NSCompoundPredicate orPredicateWithSubPredicates:feedDays]]]; 
같은