Лямбда-выражения

typedef void (^voidFunc) (int);

+(void) checkAndProcessNumber: (int) number func: (voidFunc) process {
    if (number < 10) {
        process(number * 10);
    }
}

void (^process) (int) = ^(int number) {
    NSLog(@"%i", number);
};

[self checkAndProcessNumber:5 func:process];
//printed: 50