什么是#34;呼叫队列"?

时间:2012-11-21 02:13:22

标签: objective-c ios

一个新手问题,请耐心等待。我无法理解什么是“呼叫队列”。我四处搜索但找不到定义。可能它太简单了,不值得定义?例如,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?
        }];
    }];
});

1 个答案:

答案 0 :(得分:1)

调用队列是调用saveToURL:forSaveOperation:completionHandler:的队列。所以例如如果你从主队列中调用它,那么你的完成处理程序也将出现在主队列中。

所以'召唤'是一个形容词,而不是'召唤队列'是一个复合名词。