如果从后台线程运行,Facebook startForPostWithGraphPath completionHandl



我正在向我的代码添加错误处理,该代码向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请求方法需要在主线程上调用的任何经验。在我看来,在后台线程上调用重试逻辑是正确的行为,但显然是不工作的某些原因。

我可以确认请求在主线程上工作&在我的应用程序的后台线程上失败。

最新更新