現在、次の形式を使用してダウンロードするために、メソッド内にコードのブロックをディスパッチしています。
dispatch_queue_t downloader("downloader", NULL);
dispatch_async (downloader, ^{
//do stuff
});
私が今やろうとしているのは、そのブロックにUIImageを返してもらい、それをメソッドの戻りとして使用できるようにすることです。
-(UIImage *) myMethod:
dispatch_queue_t downloader("downloader", NULL);
dispatch_async (downloader, ^{
//do stuff to get UIImage
dispatch_async (dispatch_get_main_queue, ^{
return UIImage; //this is the image that image I want myMethod to return
});
});
ただし、互換性のないタイプエラーにパラメータを渡すことができます。これは、ブロックに戻り値があることを宣言していないためです。
ブロックがdispatch_async内でUIImageを返すことをどのように宣言できますか?これは可能ですか、それともブロックが実行を終了するまでにメソッドはすでに実行されていますか?