さまざまなブロックをメソッドに渡したいのですが。その後、メソッドは渡されたブロックをdispatch_asyncのパラメーターとして使用します。
私のブロックは次のように宣言されています:
typedef int (^ComputationBlock)(int);
ブロックを受け入れるクラスメソッドは、次のように実装されます。
- (void)doSomething:(int)limit withBlock:(ComputationBlock)block;
{
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
// typical in-lined block for dispatch_async:
dispatch_async(queue, ^{
// do some work here
});
// I want to pass in the block as the 2nd parameter to dispatch_async
// but the compiler will warn me of a type mismatch unless I cast
// the block like:
dispatch_async(queue, (dispatch_block_t)block);
}
@end
block
' 'パラメーターを次のように型キャストしても大丈夫dispatch_block_t
ですか?