2010-06-29 3 views
0

J'ai utilisé un exemple de code de lecteur RSS mais j'ai trouvé une fuite dans l'analyseur.Où est la fuite?

est ici le code ...

-(BOOL)fetchAndParseRss{ 
    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; 

    [UIApplication sharedApplication].networkActivityIndicatorVisible = YES; 

    //To suppress the leak in NSXMLParser 
    [[NSURLCache sharedURLCache] setMemoryCapacity:0]; 
    [[NSURLCache sharedURLCache] setDiskCapacity:0]; 

    NSURL *url = [NSURL URLWithString:@"http://www.bnp.org.uk/?q=rss.xml"]; 
    BOOL success = NO; 
    NSXMLParser *parser = [[NSXMLParser alloc] initWithContentsOfURL:url]; 
    [parser setDelegate:self]; 
    [parser setShouldProcessNamespaces:YES]; 
    [parser setShouldReportNamespacePrefixes:YES]; 
    [parser setShouldResolveExternalEntities:NO]; 
    success = [parser parse]; 
    [parser release]; 
    [pool drain]; 
    return success; 
} 

Pouvez-vous aider?

+1

C'est dans la main de la fille, tournant. –

Répondre

1

NSXMLParser a une fuite, est un bug d'Apple. Bogue n ° 6469143 Je ne pense pas qu'ils ont résolu dans iOS4. (Au moins pas dans le simulateur) S'il vous plaît voir ceci: NSXMLParser Leaking

+0

Merci pour cela. Bien qu'il doit y avoir des moments où NSXMLParser est correct, l'application de test XML Performance sur le centre de développement fonctionne correctement. De toute façon, j'ai trouvé un excellent parseur RSS prêt d'un grand gars nommé Michael Waterfall à http://github.com/mwaterfall/MWFeedParser il fonctionne tout droit sorti de la boîte. Merci beaucoup à Michael. – Stuart