비동기 프로그래밍이라는 개념에 익숙하지 않지만, 그것의 일반적인 요지가 있습니다.AFNetworking2.0 비동기 HTTP 요청 다루기
내가 겪고있는 문제는 AFNetworking 2.0을 사용하여 HTTP 게시물 요청을하는 방법이며, 대부분의 경우 작동합니다.
그러나 메서드를 반환 할 때 실제로 응답을받은 값을 반환하는 메서드를 얻는 방법을 알아낼 수 및 다음 응답에서 값을 가져옵니다.
-(int) registerUser
{
self.responseValue = 000; //Notice I set this to 000 at start of method
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
manager.requestSerializer = [AFJSONRequestSerializer serializer];
NSDictionary *parameters = @{ @"Username": @"SomeUsername" };
[manager POST:@"http://XXX/register"
parameters:parameters
success:^(AFHTTPRequestOperation *operation, id responseObject)
{
NSLog(@"JSON: %@", responseObject);
NSError *err = nil;
self.responseValue = [[responseObject objectForKey:@"res"] intValue];
//Note: This^ value returns 99 and NSLogs confirm this
}
failure:^(AFHTTPRequestOperation *operation, NSError *err)
{
NSLog(@"Error: %@", err);
}];
return self.responseValue; //This will return 000 and never 99!
}
이 상황을 처리하는 데 '적절한'방법이 무엇입니까? 나는 '콜백'을 사용하는 속삭임을 들었다. 그러나 나는이 상황에서 그것을 구현하는 방법을 정말로 모른다.
모든 안내 또는 도움이 정말 좋을 것입니다.
[블록의 내부로부터 얻는 가변 (http://stackoverflow.com/questions/22919135/getting-variable-from-the-inside-of-block) –