0

新手问题,请多多包涵。我无法理解什么是“呼叫队列”。我四处寻找,但找不到定义。也许它太简单了,不值得定义?例如,Apple 文档说以下完成处理程序“在调用队列上调用”。谁能告诉我以下代码中的调用队列是什么?

编辑:我熟悉 GCD 以及队列和线程概念。只是不确定呼叫队列..

dispatch_async(DownloadQ, ^{
    //
    // Download (json to map to array)
    //
    NSArray* array = [DoubanDownloader downloadEvent];
    //
    // Map (Do NOT do this in main queue, will block UI)
    //
    [FillDatabase mapArray:array toManagedObjectsinContext:self.document.managedObjectContext byCommand:YES];
    //
    // commit changes to store 
    //
    [self.document.managedObjectContext performBlock:^{  // This will get main thread!
        [self.document saveToURL:self.document.fileURL forSaveOperation:UIDocumentSaveForOverwriting completionHandler:^(BOOL success){
            // what's the calling queue?
        }];
    }];
});
4

1 回答 1

1

调用队列是对 进行调用的队列saveToURL:forSaveOperation:completionHandler:。因此,例如,如果您从主队列中调用它,那么您的完成处理程序也将出现在主队列中。

所以'calling'是一个形容词,而不是'calling queue'是一个复合名词。

于 2012-11-21T02:16:36.323 回答