2017-03-08 4 views
0

私は複数のviewControllersに必要なObjective-Cという名前のブロックのセットを持っています。これらの名前付きブロックはdispatch_async()で実行されます。Objective-cブロックのセットを別のファイルに宣言し、そのファイルをコードに含めるにはどうすればよいですか?

複数回宣言する代わりに、それらを一度宣言することができます(NSObjectサブクラス化.h/.mの組み合わせなど)。次に#importを標準サブクラスと同じように宣言します。

どうすればいいですか?これは私をナットにしている。私はいくつかの方法を試しましたが、解決策は私を回避し続けます。助けてください!あなたの.hファイルで

おかげ シャン

答えて

0

、このようなあなたのブロックの変数宣言:

#import <Cocoa/Cocoa.h> 

extern int (^intReturningBlock)(int foo, int bar); 
extern NSString* (^stringReturningBlock)(int foo, int bar); 

そして、あなたの.mファイルには、ブロック変数を作成するには:

#import "MyBlocks.h" 

int (^intReturningBlock)(int foo, int bar) = ^int(int foo, int bar) { 
    return foo + bar; 
}; 

NSString* (^stringReturningBlock)(int foo, int bar) = ^NSString*(int foo, int bar) { 
    NSNumber* tmp = @(foo + bar); 
    return [tmp description];  
}; 

私の勘あなたが欠けているのは、宣言のexternです。このサイトは参考になります:http://goshdarnblocksyntax.com

+0

はい、これはトリックでした!それは今働く。私は本当に外出を逃していた。ありがとう、impcc! –

関連する問題