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

前端之家收集整理的这篇文章主要介绍了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
                   }];

        });

猜你在找的iOS相关文章