我有NSMutableArray,其中包含人员列表,现在我需要列出所有性别=男性的人员,我该怎么做?我应该进入NSPredicates吗?
答案 0 :(得分: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
的优点是您不必使用文字字符串来指定标准(如果标准很复杂,则非常混乱)。
答案 1 :(得分:0)
是的,你可以这样使用,
NSArray *filtered = [data filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"self.gender == %@", @"male"]];
NSLog(@"%@",filtered);