2016-12-28 1 views
0

하늘빛 REST API를 호출하는 함수가 있습니다.Objective C 함수의 완료 블록에서 객체를 반환하십시오.

- (void)authenticateUser:(NSString*)usernameString 
passwordString: (NSString*)passwordString{ 
    self.client = [MSClient clientWithApplicationURLString:@"url" applicationKey:@"url"]; 

    [self.client invokeAPI:@"AuthenticateAndFetchData" 
         body:nil 
       HTTPMethod:@"GET" 
       parameters:@{ @"userid": usernameString, @"password" : passwordString } 
        headers:nil 
       completion: ^(NSData *result, NSHTTPURLResponse *response, NSError *error) { 
        if(error) { 
         NSLog(@"ERROR %@", error); 
        } else { 

         NSLog(@"%@", result); 
        } 
       }]; 

} 

이 코드는 함수 내에 있습니다. result 개체에 수신 된 JSON 개체를 NSData로 반환하여 다른 개체에서이 개체를 사용하고 데이터를 구문 분석 할 수있게하려고합니다. 아무도 이것으로 나를 도울 수 있습니까? 이 같은

+0

json을 nsdata로 변환하기 http://stackoverflow.com/questions/26840736/converting-json-to-nsdata-and-nsdata-to-json-in-swift – Diksha

+0

다른 질문이있어서 접근하고 싶습니다. 완료 블록 내의 결과 객체는 함수 외부에 있습니다. –

+0

당신은 그것을위한 모델 객체를 만들 수 있고 객체를 가진 Golbal 배열을 만들 수 있고 프로젝트 전체에서 사용할 수 있습니다 – Diksha

답변

1
- (void)authenticateUser:(NSString*)usernameString 
passwordString: (NSString*)passwordString completeBlock:(void(^)(NSData *)) completeBlock 
    { 
     [self.client invokeAPI:@"fetchdata" 
          body:nil 
        HTTPMethod:@"GET" 
        parameters:@{ @"userid": usernameString, @"password" : passwordString } 
         headers:nil 
        completion: ^(NSData *result, NSHTTPURLResponse *response, NSError *error) { 
         if(error) { 
          NSLog(@"ERROR %@", error); 
         } else { 
          printf("%s", result); 

          if(completeBlock) 
           completeBlock(result); 

         } 
        }]; 
    } 

전화 :

[self authenticateUser: @"username" passwordString: @"password" completeBlock:^(NSData * data){ 
     //do something here 
    }]; 

이를 원하십니까?

+0

if (completeBlock) completeBlock (result); –

+0

이 부분은 무엇을하고 있습니까? 그것은 객체를 반환합니까? –

+0

completeBlock을 호출하고 매개 변수 – kai

관련 문제