こんなのが書ける。
#import "YOLO.h" campaigns.reject(^(PPCampaign *campaign){ return campaign.locked; }).pluck(@"venues").flatten.each(^(PPVenue *venue){ [geofencer startMonitoringForRegion:venue.region]; });もはや ObjCでは無い感じだが。。。いいかも。
NSArray.map()
id rv = @[@1, @2, @3, @4].map(^(NSNumber *n, NSNumber *index){ return @{index: n}; }); // rv => @[@{@0: @1}, @{@1: @2}, @{@2: @3}, @{@3: @4}]
NSArray.select()
id rv = @[@1, @2, @3, @4].select(^(NSNumber *n){ return n.intValue % 2 == 0; }); // rv => @[@2, @4]
NSArray.each()
@[@1, @2, @3, @4].each(^(id n){ NSLog(@"%@", n); }); // => 1\n2\n3\n4\n
他にも NSArrayで使える大量の操作メソッドが用意されている。
これ標準で欲しいな。(今晩のWWDCでこういうの追加されたりして