Почтовые вложения создают проблему - PullRequest
0 голосов
/ 20 апреля 2011

Я хочу создать CSV-файл со строкой ny и прикрепить ее.Я попробовал это с помощью этих строк

[foodString writeToFile:@"Meal.csv" atomically:YES encoding:NSUTF8StringEncoding error:NULL];
                [mailView addAttachmentData:NULL mimeType:@"text/csv" fileName:@"Meal.csv"];
                [mailView setMessageBody:@"Open attached file." isHTML:NO];

, и MFMail показывает мне значок файла в почте, но я не смог получить файл.

Пожалуйста, помогите мне. Спасибо...

Ответы [ 3 ]

2 голосов
/ 20 апреля 2011

Подсказка ...

addAttachmentData:NULL

Вам действительно нужно прикрепить данные.Имя файла - это просто имя, которое вы выбираете для присвоения файла, оно не имеет другого использования и не означает прикрепление файла с этим именем.

Документация MFMailComposeViewController проясняет это.

Поэтому вам нужно сделать что-то вроде этого;

NSData *myData = [NSData dataWithContentsOfFile:your-full-file-path];

Чтобы сгенерировать данные.Обратите внимание, что вам нужно указать полный путь к файлу, а не только имя (оставленное в качестве упражнения для читателя).

0 голосов
/ 20 апреля 2011

Попробуйте это

    NSString *filePath = @"write your file path here";

    [foodString writeToFile:filePath atomically:YES encoding:NSUTF8StringEncoding error:NULL];
 if([[NSFileManager defaultManager]fileExistsAtPath:filePath]){
    [mailView addAttachmentData:[NSData dataWithContentsOfFile:filePath] mimeType:@"text/csv" fileName:@"Meal.csv"];
    [mailView setMessageBody:@"Open attached file." isHTML:NO];

}
else{
NSLog(@"File not created!");
}
0 голосов
/ 20 апреля 2011

данные вложения не могут быть пустыми, поэтому

Попробуйте это

[foodString writeToFile:@"Meal.csv" atomically:YES encoding:NSUTF8StringEncoding error:NULL];
[mailView addAttachmentData:[NSData dataWithContentsOfFile:path_to_Meal.csv] mimeType:@"text/csv" fileName:@"Meal.csv"];
[mailView setMessageBody:@"Open attached file." isHTML:NO];
...