Sono blocchi di nidificazione e sembra UGGGGLY. C'è un modo per scrivere questo meno brutto? Principalmente cercando suggerimenti per la sintassi, piuttosto che strutturali, ma accetterò entrambi.Sintassi/formattazione durante l'annidamento dei blocchi obiettivo-c
Il mio metodo di blocco fabbrica,
-(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];
}
che viene chiamato da un certo numero di funzioni simili a questo,
-(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];
}
coda è un oggetto NSOperationQueue. Non si compilerà senza tutto il cast (brutto brutto). Amidoinitrite?
Edit: Come per la risposta di Dave DeLong, e http://www.cimgf.com/2008/02/16/cocoa-tutorial-nsoperation-and-nsoperationqueue/, ho cambiato la linea
targetView.image = previewImage;
di essere,
[targetView performSelectorOnMainThread:@selector(setImage:) withObject:previewImage waitUntilDone:YES];
@Jesse, l'uomo non ama odiare, apprezzare. –
Haha è la mia lingua "principale", quindi non stavo odiando solo scherzando. Per quanto riguarda il codice ... sembra più bello possibile con i blocchi in cui credo, ma non è davvero un esperto. –
È '[auto resizeBlock]' chiamato da qualche altra parte nel tuo programma, o solo nel metodo 'queueResize: toView:'? –