Cocoaでは、ユーザーがNSOperationQueueまたはdispath_queue_tのいずれかを非同期メソッドに渡すことができる場合があります。
+[NSURLConnection sendAsynchronousRequest:queue:completionHandler:]
-[AVPlayer addBoundaryTimeObserverForTimes:queue:usingBlock:]
-[NSNotificationCenter addObserverForName:object:queue:usingBlock:]
時々しません:
-[NSDocument continueActivityUsingBlock:]
-[NSSavePanel beginWithCompletionHandler:]
-[GKAchievementDescription loadImageWithCompletionHandler:]
私には、ブロックを作成するときにいつでも目的のキューをキャッチできるため、メソッドにキューを渡すことはあいまいに見えます。例えば:
NSOperationQueue *q = …;
[aDocument continueActivityUsingBlock:^{
[q addOperationWithBlock:^{
// Do actual work here.
}];
}];
多分私は何かが欠けていて、キューを渡すことは理にかなっていますか?