Skip to content

Instantly share code, notes, and snippets.

@setoh2000
Created June 6, 2012 19:30
Show Gist options
  • Save setoh2000/2884115 to your computer and use it in GitHub Desktop.
Save setoh2000/2884115 to your computer and use it in GitHub Desktop.
BlocksKitのselectとmatchの置き換え
//-------------------------------------------------------------------------
// MSBlocks.h
//-------------------------------------------------------------------------
@interface MSBlocks : NSObject
+ (NSArray *)array:(NSArray *)array select:(BOOL(^)(id))block;
+ (id)find:(NSArray *)array match:(BOOL(^)(id))block;
@end
//-------------------------------------------------------------------------
// MSBlocks.m
//-------------------------------------------------------------------------
#import "MSBlocks.h"
@implementation MSBlocks
+ (NSArray *)array:(NSArray *)array select:(BOOL(^)(id))block
{
NSMutableArray *results = [NSMutableArray arrayWithCapacity:array.count];
for (NSObject *obj in array) {
if (block(obj)) [results addObject:obj];
}
return results;
}
+ (id)find:(NSArray *)array match:(BOOL(^)(id))block
{
for (NSObject *obj in array) {
if (block(obj)) return obj;
}
return nil;
}
@end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment