1.
- (NSMutableArray *)filterUsingBlock:(BOOL (^)(id obj, NSUInteger idx, BOOL *stop))block
{
if (!block) {
return [self mutableCopy];
}
NSMutableArray *result = [NSMutableArray array];
NSUInteger idx = 0;
BOOL stop = NO;
for (id obj in self) {
if (block(obj, idx, &stop)) {
[result addObject:obj];
if (stop) {
break;
}
}
idx++;
}
return result;
}