NSXML 파서를 사용하여 웹 서비스에서 수신 한 SOAP 응답 XML을 구문 분석했습니다. 내가 theRequest 변수가 내 SOAP 요청을 가지고 내 SOAP 요청을 보내려면이 코드를 사용 NSXML 파서는 프로그램 흐름이 어디로 이동합니까?
NSURLConnection *theConnection = [[NSURLConnection alloc] initWithRequest:theRequest delegate:self];
내 루트 방법에 . 데이터 받았다 그래서 후,
-(void)connectionDidFinishLoading:(NSURLConnection *)connection{
//codes to recieve webData
xmlParser = [[NSXMLParser alloc] initWithData: _webData];
[_xmlParser setDelegate: self];
[_xmlParser setShouldResolveExternalEntities: YES];
[_xmlParser parse];
}
이제 프로그램 didStartElement, didFinishDocument 방법 흐른다. 내 루트 메서드는 xml을 구문 분석 한 후 얻은 결과를 반환해야하지만 중단 점을 사용하여 프로그램 흐름을 검사 할 때 구문 분석 메서드는 return 문이 내 코드에서 호출되기 전에 끝나지 않으므로 구문 분석 된 값을 반환 할 수 없습니다. 어떻게 해결할 수 있습니까?
예 XML 파서가 모든 구문 분석을 완료했지만 모든 구문 분석이 완료 될 때까지 xml 파서가 문서를 구문 분석하기를 기다리지 않고 응용 프로그램 흐름이 내 프로그램에서 계속됩니다. –
@YugeshShrestha : 문제는 'NSURLConnection'이 비동기 적으로 작동한다는 것입니다. –
음, 그렇습니다. NSURLConnection이 끝날 때까지 다른 UI 요소를 잠그지 만 사용자가 응용 프로그램이 실행 중이며 고정되어 있지 않다는 것을 알게 될 때까지로드 바 종류를 표시 할 수 있습니까? –