我有 NSMutableArray ,其中包含人员列表,现在我需要获取所有性别 = 男性的人员的列表,我该怎么做?我应该进入 NSPredicates 来做到这一点吗?
问问题
819 次
2 回答
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
在于您不必使用文字字符串来指定标准(如果标准很复杂,那就很混乱了)。
于 2013-07-04T04:37:33.110 回答
0
是的,你可以这样使用,
NSArray *filtered = [data filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"self.gender == %@", @"male"]];
NSLog(@"%@",filtered);
于 2013-07-04T04:32:06.150 回答