나는이 작업을 힘들게하고 있지만 꽤 간단하다고 생각합니다. 기본적으로, 나는 webservice와 대화하는이 메서드를 가지고 있으며, 하위 메서드 인 "authCode"에서 일부 데이터를 반환해야합니다. 내가 도대체 뭘 잘못하고있는 겁니까? 관리자에서 authCode를 가져 오려면 어떻게해야합니까? 아니면 관리자 블록이 먼저 실행되도록 블록이나 다른 것을 만들 수 있습니까? 나는 적당한 단어 - 블록, 서브 메소드를 사용하고 있는가? 제발 도와주세요 :)하위 메서드를 실행 한 후 속성에 액세스하는 방법?
- (NSString *)getAuthCodeEXAMPLE {
__block NSString *returnString = @"nothing yet!";
NSURL *baseURL = [NSURL URLWithString:BaseURLString];
NSDictionary *parametersGetAuthCode = @{@"req": @"getauth"};
AFHTTPSessionManager *manager = [[AFHTTPSessionManager alloc] initWithBaseURL:baseURL];
manager.responseSerializer = [AFJSONResponseSerializer serializer];
[manager POST:APIscript parameters:parametersGetAuthCode success:^(NSURLSessionDataTask *task, id responseObject) {
if ([task.response isKindOfClass:[NSHTTPURLResponse class]]) {
NSHTTPURLResponse *r = (NSHTTPURLResponse *)task.response;
if ([r statusCode] == 200) {
self.returnedData = responseObject;
NSString *authCode = [self.returnedData authcode];
NSLog(@"Authcode: %@", authCode);
returnString = authCode;
}
}
} failure:^(NSURLSessionDataTask *task, NSError *error) {
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Error" message:[error localizedDescription] delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles:nil];
[alertView show];
}];
//this currently returns "nothing yet!"
return returnString;
}
감사합니다. 미래의 초보자를 위해 http://themainthread.com/blog/2012/09/communicating-with-blocks-in-objective-c.html에서 예를 따랐습니다. – Warren