未调用 GTLServiceYouTube executeQuery 回调

GTLServiceYouTube executeQuery callback not called

GTLServiceYouTube executeQuery 当我在后台执行它时没有调用回调 thread.Video 不会上传。当我在 main thread.I get callbacks 中执行它时它工作正常并且视频也被上传。我可以通过在主线程中强制 executeQuery 到 运行 来解决这个问题,但这会影响 UI 性能。我该如何解决这个问题?

我的代码是这样的,

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

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

[[NSRunLoop currentRunLoop] runUntilDate:stopDate];