私は IOS Facebook SDK 3 を使用していますが、より効率的なアプローチで使用しようとしています。そのため、いくつかのリクエストを別のスレッドで管理したいと思います。
たとえば、このリクエスト (WORKS PERFECTLY) :
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];
});
}];
}];
});
これを使用してフィードに何かを投稿しています。メソッドを呼び出してこのリクエストのコンテンツを自動的にロードすると、メソッドでこのブロックが呼び出されてリクエストが開始されます。これはうまく機能します。
問題は、このリクエストをブロック内に配置しないと機能しないことです。
このリクエストは機能しません
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0);
dispatch_async(queue, ^{
FBRequest * rq = [FBRequest requestForMe];
[rq startWithCompletionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
dispatch_async(dispatch_get_main_queue(), ^{
// TREATING RESULT
[[UFBManager defaultManager] errorHandlerFromError:error
fromRqType:UFBManagerRqTypeGet];
});
}];
});
理解しようとしていますが、何が問題なのかわかりません。よろしくお願いします。