J'essaie d'envoyer un fichier CSV via MfMail Composer.Tout fonctionne très bien, mais il y a beaucoup de fuites lors de l'utilisation d'Instruments.I ne suis pas capable de tracer où je me suis trompé.Voici mon code.Fuites de mémoire lors de l'utilisation MFMailComposer
-(NSData *)getCSV
{
NSManagedObjectContext *moc = [(ETAppDelegate *)[[UIApplication sharedApplication] delegate]managedObjectContext];
NSFetchRequest *request = [[[NSFetchRequest alloc]init]autorelease];
[request setEntity:[NSEntityDescription entityForName:@"Expense" inManagedObjectContext:moc]];
NSError *error = nil;
NSArray *results = [moc executeFetchRequest:request error:&error];
NSMutableArray *expensesList = [[[NSMutableArray alloc]init]autorelease];
for(int i = 0;i<[results count];i++){
NSString *category = [[results objectAtIndex:i]valueForKey:@"category"];
NSString *date = [[NSDateFormatter dateFormatterwithMediumStyle]stringFromDate:[[results objectAtIndex:i]valueForKey:@"date"]];
NSString *amount = [NSNumberFormatter localizedStringFromNumber:[[results objectAtIndex:i]valueForKey:@"amount"] numberStyle:NSNumberFormatterCurrencyStyle];
NSString *mailString = [NSString stringWithFormat:@"%@,%@,%@",category,date,amount ];
[expensesList addObject:mailString];
}
NSString *expensesString = [expensesList componentsJoinedByString:@"\n"];
NSData *expensesData = [expensesString dataUsingEncoding:NSUTF8StringEncoding];
return expensesData;
}
-(void)displayComposerSheet
{
NSData *csvFile = [self getCSV];
NSString *csvFileName = @"MyExpenses";
MFMailComposeViewController *mailController = [[MFMailComposeViewController alloc]init];
[mailController setSubject:@"List Of Expenses"];
[mailController setMessageBody:@"Expenses" isHTML:NO];
[mailController addAttachmentData:csvFile mimeType:@"text/csv" fileName:csvFileName];
[mailController setMailComposeDelegate:self];
[self presentModalViewController:mailController animated:YES];
[mailController release];
}
merci pour le suggestions.And oui je viens enlevé le code et les fuites de vérifier et de mémoire sont toujours vous there.do une idée sur l'endroit où ces fuites peuvent éventuellement être ... parce que je reçois ces fuites une fois le courrier envoyé. – ichanduu
@Chandubhai Sans voir plus de votre code, il serait difficile pour moi de le dire. La seule question que je peux penser est: Que faites-vous avec cette instance de 'NSData' vous revenez de' -getCSV'? Je veux dire, je peux voir ce que tu fais avec ça en ce qui concerne '-displayComposerSheet '. Pourriez-vous le conserver ailleurs et ne pas le relâcher? – trudyscousin
Non c'est la seule méthode dans laquelle je l'utilise. – ichanduu