Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/96.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 未调用GTLServiceYouTube executeQuery回调_Ios_Multithreading_Youtube Data Api - Fatal编程技术网

Ios 未调用GTLServiceYouTube executeQuery回调

Ios 未调用GTLServiceYouTube executeQuery回调,ios,multithreading,youtube-data-api,Ios,Multithreading,Youtube Data Api,GTLServiceYouTubeexecuteQuery在后台线程中执行时未调用回调。无法上载视频。当我在主线程中执行它时,它工作得很好。我得到回调,视频也被上传。我可以通过强制executeQuery在主线程中运行来解决这个问题,但这会影响UI性能。我如何解决这个问题 我的代码是这样的 self.uploadFileTicket = [service executeQuery:query completionHandler:^(

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

我的代码是这样的

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

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

[[NSRunLoop currentRunLoop] runUntilDate:stopDate];

这个解决方案对我不起作用。在主线程上运行函数也是如此。还有其他建议吗?我尝试了所有方法,但并不总是调用completionHandler。