Correo electrónico file CSV con MFMailComposer

Me gustaría crear un file utilizando un NSString (ya hecho) con una extensión .csv y luego enviarlo por correo electrónico utilizando el marco de UIMessage. Entonces, ¿alguien me puede mostrar el código para crear un file (con extensiones .csv y con el contenido de un NSString) y luego cómo adjuntarlo a un MFMailComposeViewController.

Así es como adjunta un file CSV a un MFMailComposeViewController:

  MFMailComposeViewController *mailer = [[MFMailComposeViewController alloc] init]; mailer.mailComposeDelegate = self; [mailer setSubject:@"CSV File"]; [mailer addAttachmentData:[NSData dataWithContentsOfFile:@"PathToFile.csv"] mimeType:@"text/csv" fileName:@"FileName.csv"]; [self presentModalViewController:mailer animated:YES]; // Note: PathToFile.csv is the actual path of the file on your iOS device's // file system. FileName.csv is what it should be displayed as in the email. 

En cuanto a cómo generar el file CSV en sí, la class CHCSVWriter en https://github.com/davedelong/CHCSVParser lo ayudará.

Estas son las partes donde creas un nuevo csv, lo guardas en un file y lo adjuntas todo en uno. Sabes, si estás en ese tipo de cosas

 NSString *emailTitle = @"My Email Title"; NSString *messageBody = @"Email Body"; MFMailComposeViewController *mc = [[MFMailComposeViewController alloc] init]; mc.mailComposeDelegate = self; [mc setSubject:emailTitle]; [mc setMessageBody:messageBody isHTML:NO]; [mc setToRecipients:@[]]; NSMutableString *csv = [NSMutableString stringWithString:@""]; //add your content to the csv [csv appendFormat:@"MY DATA YADA YADA"]; NSString* filePath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]; NSString* fileName = @"MyCSVFileName.csv"; NSString* fileAtPath = [filePath stringByAppendingPathComponent:fileName]; if (![[NSFileManager defaultManager] fileExistsAtPath:fileAtPath]) { [[NSFileManager defaultManager] createFileAtPath:fileAtPath contents:nil attributes:nil]; } BOOL res = [[csv dataUsingEncoding:NSUTF8StringEncoding] writeToFile:fileAtPath atomically:NO]; if (!res) { [[[UIAlertView alloc] initWithTitle:@"Error Creating CSV" message:@"Check your permissions to make sure this app can create files so you may email the app data" delegate:nil cancelButtonTitle:@"Okay" otherButtonTitles: nil] show]; }else{ NSLog(@"Data saved! File path = %@", fileName); [mc addAttachmentData:[NSData dataWithContentsOfFile:fileAtPath] mimeType:@"text/csv" fileName:@"MyCSVFileName.csv"]; [self presentViewController:mc animated:YES completion:nil]; }