2013-07-04 2 views

답변

2

복사이 NSArray 카테고리 :

NSArray* males = [people arrayWithPredicate:^BOOL(id obj) { 
    // Gender check 
}]; 

NSPredicate 이상의 장점은 문자 그대로 strin을 사용할 필요가 없다는 것입니다 g 조건을 지정합니다 (기준이 복잡하면 상당히 혼란 스럽습니다).

0

예는 다음과 같이 사용할 수 있습니다, 당신은 남성들 얻을 필요가

@implementation NSArray (My) 

-(NSArray*)arrayWithPredicate:(BOOL(^)(id obj))predicate { 
    NSMutableArray* objs = [NSMutableArray array]; 

    [self enumerateObjectsUsingBlock:^(id o, NSUInteger idx, BOOL *stop) { 
     if (predicate(o)) { 
      [objs addObject:o]; 
     } 
    }]; 

    return objs; 
} 

@end 

그런 다음 코드에서 어딘가에

NSArray *filtered = [data filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"self.gender == %@", @"male"]]; 
NSLog(@"%@",filtered); 
관련 문제