2013-05-27 3 views
0

Obj-C의 새로운 기능이며 메서드 인수에서 블록을 받아 들여 다른 메서드로 전달할 수있는 방법을 이해하려고합니다.Obj-C : 메서드 인수로 블록 본문을 받아들입니다.

그래서 JSON에서 데이터를로드 할 수있는 기본 객체 (NSObject에서 상속)가 있다고 가정 해 보겠습니다. 나는 그것의 데이터를로드해야 할 뷰 컨트롤러에서이 객체를 사용하는 경우, 지금

- (void)loadDataFromJSON 
{ 
    NSMutableURLRequest *request = [http requestWithMethod:@"GET" path:MY_PATH parameters:MY_PARAMS]; 

    AFJSONRequestOperation *operation = 
    [AFJSONRequestOperation JSONRequestOperationWithRequest:request 
                success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) { 
                NSLog(@"success: %@",JSON); 
                } 
                failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, id JSON) { 
                NSLog(@"failure: %@",JSON); 
                }]; 

} 

하고 나는 데이터가로드 된 후에 만, 그것을보고 싶은 : 그것은이 같은 방법이 있습니다. 내가하고 싶은건 성공과 실패 블록을 loadDataFromJSON 메서드에 대한 인수로 가져와 JSONRequestOperationWithRequest:success:failure 호출에 전달하지만이 작업을 수행하는 구문을 이해하지 못합니다.

내가 시도 :

- (void)loadDataFromJSONWithSuccess:(^)successBlock failure:(^)failureBlock; 

이 작동하지 않습니다, 엑스 코드로이 유형을 기대 말. 그렇다면 유형이 JSONRequestOpertation...에 전달되는 블록이라고 어떻게 말할 수 있습니까?

+0

감사합니다. Josh. 중복으로 +1 투표. – Andrew

답변

2
- (void)loadDataFromJSONWithSuccess:(void(^)())successBlock failure:(void(^)())failureBlock; 
관련 문제