Block passed as value clutters code?


I did what someone else did and just cut the code for my block definition and pasted in as the argument to

[code][oldStrings enumerateObjectsUsingBlock:^(id string, NSUInteger i, BOOL *stop) {
NSMutableString *newString = [NSMutableString stringWithString:string];

        // Iterate over the array of vowels, replacing occurences of each with an empty string
        for (NSString *s in vowels) {
            NSRange fullRange = NSMakeRange(0, [newString length]);
            [newString replaceOccurrencesOfString:s
        [newStrings addObject:newString];
    } ];


I fail to understand how this could in anyway be useful. It seems to just clutter the code and in my opinion makes reading the code much more difficult. I understand that declaring a simple variable and then initializing and then passing it in as a value such as a number:

int i;
i = 5;
NSNumber *num = [NSNumber numberWithInt:i];

is much more typing than necessary, but in the case of the block it is almost the same amount of typing AND you add unreadability. Have I missed the point and done something incorrectly?