내 iPhone 응용 프로그램에서 XML을 읽는 사용자 지정 대리인으로 설정된 NSXMLParser 인스턴스가 있습니다. 그런 다음 이것은 자체 스레드로 이동되어 백그라운드에서 데이터를 업데이트 할 수 있습니다. 그러나이 작업을 수행 한 이후로 콘솔에 많은 _NSAutoreleaseNoPool 경고를 제공했습니다. 그러나 NSAutoreleasePool을 각 대리자 클래스에 추가하려고 시도했지만 문제를 해결하지 못했습니다. 잘못 된 경우를 대비하여 NSXMLParser를 만드는 방법을 포함했습니다.원인 _NSAutoreleaseNoPool에서 NSXMLParser 인스턴스를 중지하십시오.
NSURL *url = [[NSURL alloc] initWithString:@"http://www.mywebsite.com/xmlsource.xml"];
NSXMLParser *xmlParser = [[NSXMLParser alloc] initWithContentsOfURL:url];
CustomXMLParser *parser = [[CustomXMLParser alloc] init];
parser.managedObjectContext = self.managedObjectContext;
parser = [parser initXMLParser];
[xmlParser setDelegate:parser];
[NSThread detachNewThreadSelector:@selector(parse) toTarget:xmlParser withObject:nil];
누구든지이 문제를 해결할 수있는 아이디어가 있다면 정말 감사하겠습니다.
감사합니다.
그것은 @try {...} @finally {[풀 버전] 모든 것을 포장하는 것이 가장 좋습니다; } 너무, 당신이 쓰레기를 일부 예외를 얻을 경우. 물론 예외로 인해 앱이 중단되지만 예외는 아닙니다. –
감사합니다 마이크, 좋은 점 – Vladimir
답장을 보내 주셔서 감사합니다 블라디미르! 그러나, NSXMLParser 구문 분석을 호출 오전 -이 어딘가에 무시해야합니까? – PF1