을 반환하기 전에 데이터를 반환 :나는 다음과 같은 코드를 사용하여 웹 사이트에 비동기 요청을 보낼 수있는 값
NSMutableURLRequest *requestSiteToSendData = [NSMutableURLRequest requestWithURL:[[NSURL alloc]initWithString:@"www.example.com"] cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:30];
NSURLConnection *connectionToSiteToSendData = [[NSURLConnection alloc]initWithRequest:requestSiteToSendData delegate:self];
은 그 때 나는 얻을 후 데이터를 분석 할 NSURLConnectionDelegate
내부에 정의 된 다음과 같은 방법을 사용 데이터 불러 오기가 완료됩니다.
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
//parse 'data'
NSString *parsedData = [self parseDataWithData:data];
}
그런 다음 비동기 요청을 보내는 방법에서는 parsedData
을 반환합니다. 그러나 반환은 데이터 가져 오기가 완료되고 파싱이 완료된 후에 발생해야합니다. 내가 동기식 요청을 사용하지 않는 이유가 무엇인지 궁금한 점이 있다면 알아 두십시오. 로딩이 백그라운드에서 진행될 때 다른 메소드를 끊지 않기 때문입니다.
실제 문제는 로딩이 완료되고 다른 모든 메소드가 매달리지 않고 그대로 작동해야만 값이 반환되어야한다는 것입니다. 하지만 내 경우에는로드가 완료되기 전에 반환이 호출됩니다. 나는 분명하다. 질문에 대해 얻지 못한 것이 있는지 물어보십시오. –
네, 무슨 뜻입니까, 그리고 그것은 정상입니다 : 요청이 비동기 적으로 이루어지기 때문에 비동기 호출이 완료되면 나머지 기능이 계속됩니다. 나는 당신이 실제로 끝날 때까지 당신의 방법을 기다리고 싶지만 좋은 생각이나 연습은 아니라는 것을 알고 있습니다. 서버가 응답하지 않을 수도 있고 앱이 응답하지 않을 수도 있습니다. 자신이 만든 대표 또는 KVO를 사용하여이 문제를 처리해야합니다. 도움이 필요하면 도와 드리겠습니다. Armaan Stranger의 답변을 사용하여 기다릴 수는 있지만 그렇게하지 않을 것입니다. (응답이없는 앱 등). – DCMaxxx
좋아 .. 문제는 자체 제작 된 대리인을 사용하여 해결되었습니다. 고맙습니다. –