1

我正在向向 Facebook 发布消息的代码添加错误处理,但遇到了我试图理解的奇怪行为。在我的 FB startForPostWithGraphPath 完成处理程序中,我检查是否有错误,如果有,我会等待几秒钟,然后再尝试再次发布。我遇到的问题是,当我尝试再次调用该方法来发布此消息时,我在主线程上运行它,它工作正常。如果我尝试在后台线程上运行它,它会静默失败。就像在完成处理程序中一样,它永远不会被第二次调用。

作品

dispatch_after(popTime, dispatch_get_main_queue(),
               ^(void){
                    [MYSocial shareToOpenGraph:poll];
               });

失败

dispatch_after(popTime, dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0),
               ^(void){
                 [MYSocial shareToOpenGraph:poll];
               });

我很好奇是否有人对需要在主线程上调用的 FB 请求方法有任何经验。在我看来,在后台线程上调用重试逻辑是正确的行为,但显然由于某种原因不起作用。

4

1 回答 1

1

我可以确认该请求在我的应用程序的主线程上有效并且在后台线程上失败。

于 2013-09-17T23:02:09.990 回答