【发布时间】:2014-11-17 21:07:39
【问题描述】:
我可以使用我的 iOS 应用成功地将附件添加到电子邮件中,但前提是我对文件名进行了硬编码,否则附件中没有数据。
这行得通:
(IBAction)sendEmail:(id)sender
{
transectNameString = [[NSUserDefaults standardUserDefaults] objectForKey:@"dipstransect"];
transectFileExt = [NSString stringWithFormat:@".csv"];
NSString *string1 = transectNameString;
NSString *string2 = @" Drops";
NSString *string3 = transectFileExt;
NSString *tempstring1 = [string1 stringByAppendingString:string2];
setTransectName = [tempstring1 stringByAppendingString:string3];
MFMailComposeViewController *mailComposer;
NSArray *emailAddresses;
mailComposer = [MFMailComposeViewController new];
emailAddresses = @[];
mailComposer.mailComposeDelegate = self;
[mailComposer setToRecipients:emailAddresses];
filePath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
fileName = @"Paynes Drops.csv";
fileAtPath = [filePath stringByAppendingPathComponent:fileName];
NSData *fileData = [NSData dataWithContentsOfFile:fileAtPath];
[mailComposer addAttachmentData:fileData mimeType:@"text/csv" fileName:fileName];
[self presentViewController:mailComposer animated:YES completion:nil];
}
这不起作用:
(IBAction)sendEmail:(id)sender
{
transectNameString = [[NSUserDefaults standardUserDefaults] objectForKey:@"dipstransect"];
transectFileExt = [NSString stringWithFormat:@".csv"];
NSString *string1 = transectNameString;
NSString *string2 = @" Drops";
NSString *string3 = transectFileExt;
NSString *tempstring1 = [string1 stringByAppendingString:string2];
setTransectName = [tempstring1 stringByAppendingString:string3];
MFMailComposeViewController *mailComposer;
NSArray *emailAddresses;
mailComposer = [MFMailComposeViewController new];
emailAddresses = @[];
mailComposer.mailComposeDelegate = self;
[mailComposer setToRecipients:emailAddresses];
filePath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
fileName = setTransectName;
fileAtPath = [filePath stringByAppendingPathComponent:fileName];
NSData *fileData = [NSData dataWithContentsOfFile:fileAtPath];
[mailComposer addAttachmentData:fileData mimeType:@"text/csv" fileName:fileName];
[self presentViewController:mailComposer animated:YES completion:nil];
}
导致问题的文件名是什么?
【问题讨论】:
-
你调试过代码吗?验证您要构建
setTrasectName的代码是否按预期工作。 -
我通过将 NSUserDeafaults 语句移动到 ViewDidLoad 解决了这个问题,此后一切正常。
-
如果你解决了它,你应该发布你自己的答案,以便问题被标记为已解决
标签: ios email csv attachment mfmailcomposeviewcontroller