微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ios – 在分离的线程问题中使用块的异步FB请求

我正在使用 IOS Facebook SDK 3,我正在尝试使用更高效的方法.
所以我想在单独的线程中管理一些请求.

例如这个请求(完美的工作):

dispatch_queue_t queue = dispatch_get_global_queue(disPATCH_QUEUE_PRIORITY_BACKGROUND,0);
dispatch_async(queue,^{

    [self generateShareContentFor:ShareServiceTypeFacebook 
                         callback:^(NSMutableDictionary* obj)
     {
         FBRequest * rq = [FBRequest requestWithGraPHPath:@"me/Feed" 
                                               parameters:obj 
                                               HTTPMethod:@"POST"];
         [rq startWithCompletionHandler:^(FBRequestConnection *connection,id result,NSError *error) { 

              dispatch_async(dispatch_get_main_queue(),^{
                 // TREATING RESULT
                 [[UFBManager defaultManager] errorHandlerFromError:error 
                                                         fromrqType:UFBManagerRqTypePost];
              });

          }];
     }];  

});

>我正在使用这个在我的Feed上发布内容,我调用一个方法自动加载此请求的内容,然后在方法调用此块以启动请求.
这个很好用.
>问题是如果我不将此请求放在一个块中,那就不起作用了.

此请求不起作用

dispatch_queue_t queue = dispatch_get_global_queue(disPATCH_QUEUE_PRIORITY_BACKGROUND,0);
     dispatch_async(queue,^{

          FBRequest * rq = [FBRequest requestForMe];
          [rq startWithCompletionHandler:^(FBRequestConnection *connection,NSError *error) {

                  dispatch_async(dispatch_get_main_queue(),^{

                    // TREATING RESULT
                    [[UFBManager defaultManager] errorHandlerFromError:error 
                                                          fromrqType:UFBManagerRqTypeGet];

                  });

          }];
     });

我想弄清楚,但我不明白是什么问题.
在此先感谢您的帮助.

解决方法

我有一点这个问题.

确保在主线程上分派代码.

dispatch_async(dispatch_get_main_queue,^{

           FBRequest * rq = [FBRequest requestForMe];
           [rq startWithCompletionHandler:^(FBRequestConnection *connection,NSError *error) {
                   //The docs say this will be the main queue here anyway
                   //Feel free to go on a background thread at this point
                   }];

        });

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐