ブロックを入れ子にしていて、UGGGGLYのように見えます。これはあまりにも醜い書き込む方法はありますか?主に構造的ではなく、構文の提案を探していますが、どちらでも受け入れます。 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オブジェクトです。それはすべての(醜い醜い)鋳造なしではコンパイルされません。アミドイitライト?
編集:デイブ・デロングの答えを1として 、およびhttp://www.cimgf.com/2008/02/16/cocoa-tutorial-nsoperation-and-nsoperationqueue/、私が使用typedef
が
[targetView performSelectorOnMainThread:@selector(setImage:) withObject:previewImage waitUntilDone:YES];
@Jesse、man do not playa hate、appreciate。 –
母は私の「メイン」言語なので、ただ冗談を言うのを嫌っていませんでした。限り、コードとして...それは私が信じるブロックを使用することができるようにかなり見えるが、実際にはエキスパートではない。 –
'[self resizeBlock]'はあなたのプログラムのどこか、あるいは 'queueResize:toView:'メソッドのどこかで呼び出されますか? –