Ich verwende zwei Objekte, d. H. PagesUrl und pagesXmlParser, im Code und nach ihrer Verwendung, um diese beiden Objekte freizugeben. Es läuft gut, aber es zeigt sie in Speicherlecks. Als ich versuchte, es zu überprüfen, überprüfte ich die Referenzzählung dieser Objekte und zeigte '1', selbst nachdem die Objekte freigegeben wurden. kann mir jemand helfen, wie man dieses Leck entfernt und wie man diese bestimmten Objekte im folgenden Code freigibt.iPhone: Speicherleck in diesem Code?
-(void)loadPagesForChapter:(NSString *)path{
// have to parse the pages xml for this chapter
NSURL *pagesUrl = [[NSURL alloc] initFileURLWithPath:[self pagesXmlPath:path]];
NSXMLParser *pagesXmlParser = [[NSXMLParser alloc] initWithContentsOfURL:pagesUrl];
PagesAccumulator *pageLoader = [[PagesAccumulator alloc] init];
pagesXmlParser.delegate = pageLoader;
[pagesXmlParser parse];
// parsing pages done
// get the pages array
self.arrayOfPages = pageLoader.arrayOfPages;
[pageLoader release];
[pagesXmlParser release];
[pagesUrl release];
NSLog(@"pagesurl retain count is:%d",[pagesUrl retainCount]);
NSLog(@"pagesxmlparser retain count is:%d",[pagesXmlParser retainCount]);
}
Vielen Dank im Voraus für jede Hilfe.
Lecks im Gerät oder im Simulator - wenn es im Simulator Lecks gibt, testen Sie es auf dem Gerät - der Simulator liefert manchmal falsche Ergebnisse! – deanWombourne