GTLServiceYouTube未调用executeQuery回调

时间:2015-02-16 12:17:51

标签: ios multithreading youtube-data-api

当我在后台线程中执行时,未调用GTLServiceYouTube executeQuery回调。视频不会上传。当我在主线程中执行它时它工作正常。我得到回调和视频也上传。我可以通过强制executeQuery在主线程中运行来解决这个问题,但这会影响UI性能。我该如何解决这个问题?

我的代码就像这样,

self.uploadFileTicket = [service executeQuery:query
                                completionHandler:^(GTLServiceTicket *ticket,
                                                    GTLYouTubeVideo *uploadedVideo,
                                                    NSError *error) {
// code to handle
}

1 个答案:

答案 0 :(得分:1)

我找到了解决方案!这里发生的事情是,当我在后台线程中运行代码时,在回调到来之前线程被分离。因此我们没有得到回调。当我在主线程中运行它时,主线程始终保持活动状态。因此我们得到了回调。因此,可以通过使用以下代码使当前线程等待来解决此问题。

[[NSRunLoop currentRunLoop] runUntilDate:stopDate];