Estoy trabajando con el SDK 3 de Facebook de IOS, y estoy tratando de usarlo con el enfoque más eficiente. Así que me gustaría gestionar algunas solicitudes en hilos separados.Solicitud Async FB con bloque en cuestión de subproceso separado
Por ejemplo esta solicitud (funciona perfectamente):
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];
});
}];
}];
});
estoy usando ésta para publicar algo en mi alimentación, llamo a un método para cargar el contenido de esta solicitud de forma automática y luego se llamará a este bloque en el método para lanzar la solicitud. Este funciona bien.
El problema es que si no puse esta solicitud dentro de un bloque, eso no funciona.
Esta petición no funciona
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];
});
}];
});
que estoy tratando de averiguar, pero no entiendo cuál es el problema. Gracias de antemano por su ayuda.
Tendrás que proporcionar más información. ¿A qué te refieres con "no funciona"? –
Gracias por su respuesta, Christopher, y disculpe por la falta de información. Cuando trato de depurar esta segunda solicitud, puedo iniciar sesión hasta la declaración * rq, pero no tengo ningún regreso del bloque del controlador de finalización declarado al iniciar el método startCompletionHandler –