我对IoS比较陌生,在使用邮件附件时遇到问题。以下是我的代码。
NSArray *paths = NSSearchPathForDirectoriesInDomains
(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
//make a file name to write the data to using the documents directory:
NSString *fileName = [NSString stringWithFormat:@"%@/textfile.txt",
documentsDirectory];
//create content - four lines of text
NSString *content = @"One\nTwo\nThree\nF\nFive";
//save content to the documents directory
[content writeToFile:fileName
atomically:NO
encoding:NSStringEncodingConversionAllowLossy
error:nil];
mailComposer = [[MFMailComposeViewController alloc]init];
mailComposer.mailComposeDelegate = self;
[mailComposer setSubject:@"Test mail"];
NSData *myData = [NSData dataWithContentsOfFile:fileName];
[mailComposer addAttachmentData:myData mimeType:@"text/plain" fileName:fileName];
[mailComposer setMessageBody:@"Testing message for the test mail" isHTML:NO];
[self presentModalViewController:mailComposer animated:YES];
这很好用,我得到邮件附件。但是,如果我将文件名更改为
NSString *fileName = [NSString stringWithFormat:@"%@",
@"Sample.txt"];
它显示撰写邮件中的附件,但在发送时,不会有任何附件。任何人都可以建议如何完成相同的
答案 0 :(得分:2)
是的,它不会起作用,因为你必须提供访问该文件的完整路径,您试图附加该文件,例如:
NSString *fileName = [NSString stringWithFormat:@"%@/textfile.txt",
documentsDirectory];
这也是textfile.txt的完整路径,也包含文档目录路径。 这就是你没有正确获得附件的原因。你必须提供你试图附加的文件的完整路径。