Block構文を使ったサンプルコード
ややこしいなー
// (戻り値の型 (^)(引数))メソッド名 - (NSArray *)filter:(NSArray *)array block:(BOOL (^)(int))block { NSMutableArray *result = [NSMutableArray array]; for (NSNumber *num in array) { if (block(num.intValue)) { [result addObject:num]; } } return result; } - (void)viewDidLoad { [super viewDidLoad]; NSMutableArray *numbers = [NSMutableArray array]; for (int i = 0; i < 10; i++) { [numbers addObject:[NSNumber numberWithInt:i]]; } // ^(引数) {処理} NSArray *result = [self filter:numbers block:^(int n) { if (n % 2 == 0) { return YES; } else { return NO; } }]; for (NSNumber *num in result) { NSLog(@"%d", num.intValue); } }