nsxmlparser 대리자의 올바른 디자인으로 고민하고 있습니다.대리인이 자체가 아닌 경우 nsxmlparser의 OO 모델
내 Foos 테이블을 작성하려면 두 가지 유형의 webservice 호출이 필요합니다. 하나는 전체 테이블을위한 것이고 다른 하나는 각 행을위한 것입니다. 그것은 master-query-result-xml이 충분한 정보를 반환하지 않기 때문에 본질적으로 master-query 다음 detail-query입니다. 그래서 각 행에 대한 세부 정보를 쿼리해야합니다. 엄청난 양의 데이터를 다루지 않습니다.
어쨌든 -. 이전에 그냥
NSXMLParser *parser = [[NSXMLParser alloc]init];
[parser setDelegate:self];
[parser parse];
을 사용하고 난에있어 어떤 클래스의 모든 적절한 대리자 메서드를 구현했습니다
를 시도에서는 청결에, 지금은 두 개의 별도의 위임 클래스를 만들었습니다 및 수행 뭔가 같은 : 청소기되는 이외에도
NSXMLParser *xp = [[NSXMLParser alloc]init];
MyMasterXMLParserDelegate *masterParserDelegate = [[MyMasterXMLParser]alloc]init];
[xp setDelegate:masterParserDelegate];
[xp parse];
(내 의견으로는, 적어도), 또한 w를 알아 내려고 대부분의 시간을 소비하지 않는 -parser:didStartElement
구현의 각을 의미한다
그럼 이제 문제의 핵심입니다.
대리인을 나눠주기 전에 위임 메서드, 클래스 개체의 NSMutableArray를 구현 한 주 클래스에 있었는데 -parser:didEndElement
이 'end 각 레코드의
이제 델리게이트는 별도의 클래스에 있습니다. 'detail'델리게이트 클래스의 -parser : didEndElement가 생성 된 객체를 호출 클래스에 "반환"하는 방법을 알 수 없습니다. 적어도 깨끗한 OO 방식은 아닙니다. 나는 모든 종류의 불쾌한 클래스 방법으로 그것을 할 수있을 것이라고 확신한다.
질문에 의미가 있습니까? 감사합니다. .
물론. 많은 감사합니다! – richard