将字符串保存为具有自定义名称IOS的文件附件

时间:2013-12-16 07:20:12

标签: iphone ios7 email-attachments mfmailcomposeviewcontroller

我对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"];

它显示撰写邮件中的附件,但在发送时,不会有任何附件。任何人都可以建议如何完成相同的

1 个答案:

答案 0 :(得分:2)

是的,它不会起作用,因为你必须提供访问该文件的完整路径,您试图附加该文件,例如:

NSString *fileName = [NSString stringWithFormat:@"%@/textfile.txt",
                          documentsDirectory];

这也是textfile.txt的完整路径,也包含文档目录路径。 这就是你没有正确获得附件的原因。你必须提供你试图附加的文件的完整路径。