그래서 전달하고 싶은 것들로 포장 된 XML 문서를 반환하는 API에 대해 인증하는 함수를 작성하고 있습니다. 이 함수는 NSURLConnection의 sendSynchronousRequest
메서드를 사용하여 동기식 호출을 매우 쉽게 만들 수 있습니다. 그러나이 메서드가 반환되면 NSXMLParser의 인스턴스를 인스턴스화하고 데이터로 시작하고 구문을 분석 할 필요가 있습니다.비동기 Cocoa 클래스가 동기식으로 작동하도록 만들기
내가 원하는 기능은 sendSynchronousRequest
반환합니다.), NSXMLParser를 인스턴스화하고, 구문 분석 할 데이터를 제공하고, 단일 메서드 호출에서 구문 분석을 시작하고 구문 분석이 끝날 때까지 반환하지 않습니다. 예를 들어
: 위의 예에서
- (void) myFunction
{
/* other code */
NSData *returnedData = [NSURLConnection sendSynchronousRequest:authRequest returningResponse:&authResponse error:&authError];
MyParserClass *parser = [[MyParserClass alloc] initWithData:returnedData];
[parser parseData];
}
, MyParserClass
는 NSXMLParser의 대표이며, 보통, 위임 방식으로 모든 구문 분석을 수행합니다. parseData
은 구문 분석을 시작하고 끝날 때까지 반환하지 않습니다.
어떤 방식으로 작성해야합니까? parseData
? 블록 접근?
편집 : 방금 NSXMLParser의 -parse 함수가 동기식임을 기억합니다. 아직도, 나는 어떤 종류의 비동기 클래스에서 이것을 할 수있는 방법을 누군가 설명 할 수 있는지 알고 싶다.
이 모든 것이 백그라운드 스레드에서 발생합니다. 맞습니까? 동기식 네트워킹은 Cocoa에서 거의 절대적인 접근 방식이 아닙니다. –