非同期処理を実装したい場合の方法について。
(厳密な用語として「非同期処理」と括っていいのかわからないけど、
「A処理の実行結果が取得された後にB処理を実行したい」というケース想定)
① dispatch_queueを使用する
dispatch_queue_createの第一引数は任意の文字列(const char)。
他の処理と重複してはいけないのかと最初思ったが、そうでもないようだ。
<参考>
http://fernweh.jp/b/grandcentraldispatch/
http://objective-audio.jp/2009/09/grand-central-dispatch-queue.html
dispatch_queue_t sub_queue = dispatch_queue_create("com.nadegiri.development", 0); dispatch_async(sub_queue, ^{ //実行したい処理 [self hoge]; });
② NSNotificationを使用する
こっちの方がブロック構文とかなくて簡潔かなあ。
<参考>
http://qiita.com/EntreGulss/items/0fbfa1b75eebf075da4d
んで。
結局まだ問題解決してないんですけどね。
「ループ中で非同期処理を実行しても最初の一回しか実行されない」という。
やれやれ。難しいなあ・・・。
0 件のコメント:
コメントを投稿