Ios 在后台执行AFHTTPOperation并返回结果

Ios 在后台执行AFHTTPOperation并返回结果,ios,objective-c,objective-c-blocks,afnetworking,Ios,Objective C,Objective C Blocks,Afnetworking,我目前正在开发一个iOS应用程序,我使用AFNetworking与远程API进行通信。我想做的是创建不同的函数来返回API响应。我目前的代码是: -(void)requestMethod:(NSString *)method arguments:(id)arguments { NSDictionary *parameters=@{@"jsonrpc": @"2.0", @"method": method, @"params": arguments}; [httpClient pos

我目前正在开发一个iOS应用程序,我使用AFNetworking与远程API进行通信。我想做的是创建不同的函数来返回API响应。我目前的代码是:

-(void)requestMethod:(NSString *)method arguments:(id)arguments
{
    NSDictionary *parameters=@{@"jsonrpc": @"2.0", @"method": method, @"params": arguments};
   [httpClient postPath:methodPath parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) {
        NSError *error;
        NSDictionary *responseParsed=[NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableContainers error:&error];

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

}
现在,这段代码是由块执行的,当我收到服务器的响应时调用这些块。函数的最佳实现是什么?当在任何线程上调用该函数时,它都会返回某个方法的响应?比如:

-(NSArray *)getUsersFromAPI;

谢谢

您可以让您的方法将一个带有结果NSArray的块作为参数,并将其作为参数传递给抓取函数:

-(void)getUsersFromAPIWithResponse:(void(^)(AFHTTPRequestOperation *operation, NSArray *users))responseBlock {
    NSDictionary *parameters=@{};
    [httpClient postPath:methodPath parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) {
        NSError *error;
        NSArray *responseParsed = //do something cool;
        responseBlock(operation, responseParsed);
    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
        NSLog(@"%@",error);
    }];
}

我想你不明白我的意思,或者我不明白你的答案,但我想返回我成功区中的responseParsed字典。但是NSArray什么时候返回?没问题。谢谢你陪我度过这段时间,我今天有点心不在焉。