2013-07-04 2 views

ответ

2

Скопируйте эту NSArray категорию в куда-то в вашем коде

@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* males = [people arrayWithPredicate:^BOOL(id obj) { 
    // Gender check 
}]; 

Преимущество над NSPredicate заключается в том, что вам не нужно использовать буквенную строну g, чтобы указать критерии (довольно беспорядок, если критерии сложны).

0

да, вы можете использовать, как это,

NSArray *filtered = [data filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"self.gender == %@", @"male"]]; 
NSLog(@"%@",filtered); 
Смежные вопросы