Синтаксис / форматирование при вложении блоков objective-c

Я вкладываю блоки, и это выглядит УЖАСНО. Есть ли способ написать это менее уродливо? В основном ищу предложения синтаксиса, а не структурные, но я согласен .

Мой метод фабрики блоков,

-(NSImage *(^)(CGFloat size, BOOL preview))resizeBlock {

return (NSImage *(^)(CGFloat size, BOOL preview))[[^(CGFloat size, BOOL preview){
        // image-resizing code
        return [[[NSImage alloc] init] autorelease];
    } copy] autorelease];

}

который вызывается из ряда функций, аналогичных этой,

-(void)queueResize:(CGFloat)targetSize toView:(NSImageView *)targetView {
    NSImage*(^sizeBlock)(CGFloat,BOOL) = [self resizeBlock];
    NSBlockOperation *bo = [NSBlockOperation blockOperationWithBlock:^(void) {
        NSImage *previewImage = (NSImage*)sizeBlock(targetSize,YES);
        targetView.image = previewImage;
    }];
    [queue addOperation:bo];
}

очередь является объектом NSOperationQueue. t компилировать без всего (уродливого) приведения. Амидоинитрит?

Править: Согласно ответу Дейва Делонга и http://www.cimgf.com/2008/02/16/cocoa-tutorial-nsoperation-and-nsoperationqueue/ , я изменил строку

targetView.image = previewImage;

на

[targetView performSelectorOnMainThread:@selector(setImage:) withObject:previewImage waitUntilDone:YES];

5
задан Kenny Winker 15 September 2011 в 11:49
поделиться