J'ai couru instrument dans xcode4 et il m'a dit qu'il y avait deux fuites dans le code suivant (noté ****
). Je pensais que j'avais pris soin de la libération de la mémoire avec le code à pt. A et pt. B.Comment réparer cette fuite de mémoire autour de pushViewController?
J'ai lu quelques sujets connexes ici mais je n'arrivais toujours pas à comprendre pourquoi et comment les réparer.
Une autre question est de savoir si la libération à pt. A est nécessaire.
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
//Get the dialog id
NSDictionary *rowData = [dialogs objectAtIndex:indexPath.row];
NSInteger dialogId = [[rowData objectForKey:@"id"] intValue];
DialogViewController *detailViewController = [[DialogViewController alloc] initWithNibName:@"DialogViewController" bundle:nil];
detailViewController.dialogId = dialogId;
NSString *title = [NSString stringWithFormat:@"%d. %@", [[rowData objectForKey:@"id"] intValue], [rowData objectForKey:@"title"]];
****** i 6.8%
[detailViewController.dialogTitle release]; // pt. A
detailViewController.dialogTitle = [title retain];
[self.navigationController pushViewController:detailViewController animated:YES];
****** i 93.2%
[detailViewController release]; // pt. B
}
Merci beaucoup d'avance! Lu
rekle, Merci pour votre réponse! Alors savez-vous pourquoi l'outil de fuite de Xcode4 signale une fuite de pt.B? Dois-je le considérer comme un faux négatif ou est-il possible que DialogViewController ait une fuite? Que suggérerais-tu? –