여러 종류의 XML 파일 구문 분석을 처리해야하는 응용 프로그램을 작성 중입니다. 가능한 한 프로 시저를 표준화하고 싶기 때문에 모든 XML 데이터의 구문 분석을 처리하는 싱글 톤 클래스를 만들었습니다. 이 클래스에는 두 가지 옵션, 즉 구문 분석 할 XML 데이터의 종류와 데이터 자체를 알려주는 고유 식별자가 있습니다. 클래스 내에서 구문 분석을 수행하고 결과를 포함하는있는 NSMutableArray 개체를 반환하는 다음과 같은 기능이 있습니다 :XMLParser 대리자 및 메모리 누수
코드 위- (NSMutableArray*) initAPIDataParse:(NSData *)data APIRequestType:(int)requestType {
// Init parser
NSXMLParser *parser = [[NSXMLParser alloc] initWithData:data];
// Set delegate for parser
if (requestType == kXMLParserTypeOne) {
[parser setDelegate:[[[XMLParserOne alloc] init] autorelease]];
} else if (requestType == kXMLParserTypeTwo) {
[parser setDelegate:[[[XMLParserTwo alloc] init] autorelease]];
} // etc.
// let's parse the XML
[parser parse];
[parser release];
return lastParsedDict; //lastParsedDict is the NSMutableArray object returned from the Parser delegate
}
이 매력처럼 작동을 제외하고 당신은 XML 여러 번이 라인의 동일한 유형을 분석하면 (의미가) 누출 : XML 파서의 동일한 유형을 다시 요청 때마다 나는 몇 가지를 시도
[parser setDelegate:[[[XMLParserOne alloc] init] autorelease]];
아직 대리자의 인스턴스와 인스턴스 변수를 생성하고 방출 등이 문제를 해결하려면 그것은 작동하지 않았다.
나는 여기에서 어떤 도움도 기쁘게 생각합니다.