gpt4 book ai didi

ios - 将 .mov 附加到 MFMailComposeViewController

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:42:45 24 4
gpt4 key购买 nike

我想通过电子邮件发送 .mov 文件。所以我正在使用 MFMailComposeViewController。花了一些时间搜索后,我终于写了下面的代码。

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *myPathDocs = [documentsDirectory stringByAppendingPathComponent:
[NSString stringWithFormat:@"/Saved Video/%@",[player.contentURL lastPathComponent]]];
MFMailComposeViewController *mail = [[MFMailComposeViewController alloc] init];
mail.mailComposeDelegate = self;
[mail addAttachmentData:[NSData dataWithContentsOfURL:[NSURL URLWithString:myPathDocs]] mimeType:@"video/quicktime" fileName:[myPathDocs lastPathComponent]];
[mail setSubject:@"Share VIDEO by My App"];
[self presentViewController:mail animated:YES completion:nil];

当 Mail composer 出现时,我可以在邮件正文中看到附件,但我收到的邮件没有附件。
我是否遗漏了什么?还是做错了什么?

请帮帮我。

最佳答案

您没有正确获取文件的数据。

第一步是拆分您的代码,使其更具可读性并且更易于调试。拆分此行:

[mail addAttachmentData:[NSData dataWithContentsOfURL:[NSURL URLWithString:myPathDocs]] mimeType:@"video/quicktime" fileName:[myPathDocs lastPathComponent]];

进入这些:

NSURL *fileURL = [NSURL URLWithString:myPathDocs];
NSData *fileData = [NSData dataWithContentsOfURL:fileURL];
[mail addAttachmentData:fileData mimeType:@"video/quicktime" fileName:[myPathDocs lastPathComponent]];

现在当你调试这段代码时,你会发现 fileDatanilfileURL 也将是 nil(或者至少是一个无效的 URL)。

改变这一行:

NSURL *fileURL = [NSURL URLWithString:myPathDocs];

到:

NSURL *fileURL = [NSURL fileURLWithPath:myPathDocs];

您需要这样做,因为 myPathDocs 是文件路径,而不是 URL 字符串。

此外,您应该修复构建 myPathDocs 的方式。而不是:

NSString *myPathDocs =  [documentsDirectory stringByAppendingPathComponent:
[NSString stringWithFormat:@"/Saved Video/%@",[player.contentURL lastPathComponent]]];

你应该这样做:

NSString *myPathDocs = [[documentsDirectory stringByAppendingPathComponent:@"Saved Video"] stringByAppendingPathComponent:[player.contentURL lastPathComponent]];

关于ios - 将 .mov 附加到 MFMailComposeViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30669225/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com