在创建的后台线程上同步运行AFNetworking 2

时间:2014-03-16 16:00:24

标签: ios afnetworking afnetworking-2

我创建了一个后台线程来执行一系列AFNetworking请求,我希望它们按顺序排列。一些代码:

dispatch_queue_t request_queue = dispatch_queue_create("someLabel", NULL);

dispatch_async(request_queue, ^{

    dispatch_semaphore_wait(self.mySemaphore, DISPATCH_TIME_FOREVER);

    // AFnetworking request I want to be synchronous
    AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
    NSDictionary *parameters = @{@"foo": @"bar"};
    [manager POST:@"http://example.com/resources.json" parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) {

    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
        NSLog(@"Error: %@", error);
    }];

    ...

如何使AFHTTPRequest同步?

谢谢!

1 个答案:

答案 0 :(得分:0)

在这种情况下,您应该自己生成NSURLSessionDataTask。 AF操作管理器会立即将操作排入队列(这正是它的作用)。如果您自己创建一个,可以随时拨打resume,或者根据需要将操作添加到您自己的队列中。