2015-02-16 2 views
1

GTLServiceYouTube executeQuery callback не вызывается, когда я выполняю его в фоновом потоке. Видео не загружается. Он отлично работает, когда я выполняю его в основном потоке. Я получаю обратные вызовы и видео также загружается. Я могу решить это, заставив executeQuery работать в основном потоке, но это влияет на производительность пользовательского интерфейса. Как я могу решить эту проблему?GTLServiceYouTube executeQuery callback not called

Мой код выглядит следующим образом,

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

ответ

1

Я нашел решение! Здесь, что происходит, когда я запускаю код в фоновом потоке, перед обратным вызовом поток отключается. Следовательно, мы не получаем обратный вызов. Когда я запускаю его в основном потоке, основная тема остается живой повсюду. Следовательно, мы получаем обратный вызов. Следовательно, эта проблема может быть решена путем ожидания текущего потока, используя следующий код.

[[NSRunLoop currentRunLoop] runUntilDate:stopDate]; 
+0

Это решение не работает для меня. Не работает функция Main Thread. Любые другие предложения? Я пробовал все, и завершение Handler не всегда называется. – Anirudh

Смежные вопросы