probleme leak avec instrument parseur xml
paddev
Membre
Bonjour a tous,
je suis entrain de faire une appli ou je parse plusieurs fichiers xml donc j'utilise dans mon appDelegate ces 2 fonctions plusieurs fois .
Avec instruments j'ai un leak de 100% sur cette ligne dans la fonction "checkforupadate"qui permet de verifier la date de mon fichier xml pour mettre a jour le flux rss:
TBXML *tbxml=TBXML tbxmlWithURL:[NSURL URLWithString:@"http://www..........." retain];
instruments l'indique un leak: Malloc 128 bytes dans la lybrary libdispatch.dylib
Merci pour votre aide.
Voici le code des 2 fonctions:
je suis entrain de faire une appli ou je parse plusieurs fichiers xml donc j'utilise dans mon appDelegate ces 2 fonctions plusieurs fois .
Avec instruments j'ai un leak de 100% sur cette ligne dans la fonction "checkforupadate"qui permet de verifier la date de mon fichier xml pour mettre a jour le flux rss:
TBXML *tbxml=TBXML tbxmlWithURL:[NSURL URLWithString:@"http://www..........." retain];
instruments l'indique un leak: Malloc 128 bytes dans la lybrary libdispatch.dylib
Merci pour votre aide.
Voici le code des 2 fonctions:
<br />-(void)loadXML{<br /> TBXML *tbxml=[[TBXML tbxmlWithURL:[NSURL URLWithString:@"http://www........."]] retain];<br /> TBXMLElement *root=tbxml.rootXMLElement;<br /> [tbxml release];<br /> if(root){<br /> TBXMLElement *channel = [TBXML childElementNamed:@"channel" parentElement:root];<br /> if(channel){<br /> TBXMLElement *item=[TBXML childElementNamed:@"item" parentElement:channel];<br /> if(item){<br /> while(item !=nil){<br /> TBXMLElement *titre=[TBXML childElementNamed:@"title" parentElement:item];<br /> NSString *titreArt=[TBXML textForElement:titre];<br /> <br /> TBXMLElement *datePub=[TBXML childElementNamed:@"pubDate" parentElement:item];<br /> NSString *datePubArt=[TBXML textForElement:datePub];<br /> TBXMLElement *lien=[TBXML childElementNamed:@"link" parentElement:item];<br /> NSString *lienArt=[TBXML textForElement:lien];<br /> TBXMLElement *description=[TBXML childElementNamed:@"description" parentElement:item];<br /> NSString *desArt=[TBXML textForElement:description];<br /> <br /> TBXMLElement *image=[TBXML childElementNamed:@"img" parentElement:item];<br /> TBXMLAttribute * attribute = image->firstAttribute; <br /> <br /> [[TBXML attributeName:attribute] isEqualToString: @"src"]; <br /> NSString *currencyName = [TBXML attributeValue:attribute]; <br /> <br /> NSURL *url = [NSURL URLWithString:currencyName];<br /> <br /> NSData *data = [[NSData alloc] initWithContentsOfURL:url];<br /> <br /> UIImage *uiImage = [UIImage imageWithData:data];<br /> <br /> NSData * imageData = UIImagePNGRepresentation(uiImage);<br /> [data release];<br /> News *uneNews = (News *)[NSEntityDescription insertNewObjectForEntityForName:@"News" inManagedObjectContext:managedObjectContext_];<br /> [uneNews setTitre:titreArt];<br /> [uneNews setLien:lienArt];<br /> [uneNews setDatePub:datePubArt];<br /> [uneNews setDescription:desArt];<br /> // [uneNews setCategorie:catArt];<br /> [uneNews setImage:currencyName];<br /> [uneNews setImageBrut:imageData];<br /> if([managedObjectContext_ save:nil]){<br /> NSLog(@"Enregistrement de la news"); <br /> }<br /> item=[TBXML nextSiblingNamed:@"item" searchFromElement:item];<br /> }<br /> }<br /> }<br /> <br /> }<br /> else{<br /> <br /> }<br />}<br /><br /><br /><br /><br />-(void)checkForUpdate{<br /> NSFetchRequest *dateRequest=[[NSFetchRequest alloc]init];<br /> NSEntityDescription *dateEntity = [NSEntityDescription entityForName:@"Update" inManagedObjectContext:managedObjectContext_];<br /> [dateRequest setEntity:dateEntity];<br /> <br /> NSMutableArray *result=[[managedObjectContext_ executeFetchRequest:dateRequest error:nil]mutableCopy];<br /> [dateRequest release];<br /> dateBase=[[NSString alloc]init];<br /> [glow=red,2,300]<br /> TBXML *tbxml=[[TBXML tbxmlWithURL:[NSURL URLWithString:@"http://www..........."]] retain]; // ICI LEAK 100%[/glow]<br /> TBXMLElement *root=tbxml.rootXMLElement;<br /> [tbxml release];<br /> dateXMl=[[NSString alloc]init];<br /> <br /> if(root){<br /> TBXMLElement *channel = [TBXML childElementNamed:@"channel" parentElement:root];<br /> if(channel){<br /> TBXMLElement *lastBuildUpdate=[TBXML childElementNamed:@"lastBuildDate" parentElement:channel];<br /> if(lastBuildUpdate){<br /> dateXMl=[TBXML textForElement:lastBuildUpdate];<br /> <br /> }<br /> <br /> }<br /> }<br /> if([result count] == 0) {<br /> <br /> Update *updateBase=(Update *) [NSEntityDescription insertNewObjectForEntityForName:@"Update" inManagedObjectContext:managedObjectContext_];<br /> [updateBase setLastBuildDate:dateXMl];<br /> [managedObjectContext_ save:nil];<br /> [self loadXML];<br /> }<br /> else{<br /> Update *resultBase=(Update *)[result objectAtIndex:0];<br /> dateBase=[resultBase LastBuildDate];<br /> <br /> if([dateBase isEqualToString:dateXMl]){<br /> <br /> }<br /> <br /> else{<br /> for(Update*newDate in result){<br /> [newDate setLastBuildDate:dateXMl];<br /> <br /> <br /> }<br /> [self deleteEntity:@"News"];<br /> [self loadXML];<br /> }<br /> <br /> }<br /> [result release];<br /> <br /> <br />}
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses