2013-02-20 3 views
2

현재 iOS App에서 작업 중이며 AFNetworking을 사용하여 먼 API와 통신합니다. 내가 할 일은 API 응답을 돌려주는 다른 함수를 만드는 것입니다. 현재 코드는 다음과 같습니다.백그라운드에서 AFHTTPOperation을 실행하고 결과를 반환합니다.

-(void)requestMethod:(NSString *)method arguments:(id)arguments 
{ 
    NSDictionary *[email protected]{@"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를 가진 블록을 확인하고 가져 오는 함수에 인수로 전달할 수 있습니다

답변

1

:

-(void)getUsersFromAPIWithResponse:(void(^)(AFHTTPRequestOperation *operation, NSArray *users))responseBlock { 
    NSDictionary *[email protected]{}; 
    [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); 
    }]; 
} 
+0

난 당신이 무슨 뜻인지 이해 생각하지 않는다 아니면 내가 돈 당신의 대답을 이해하지 못한다. 그러나 나는 나의 성공 블록에있는 responseParsed 사전을 돌려주기를 원한다. – Abel

+0

나는 본다! 내가 편집 해 보자. – CodaFi

+0

하지만 NSArray는 언제 반환됩니까? – Abel

관련 문제