Ios 我可以通过电子邮件以附件的形式发送文件吗?

Ios 我可以通过电子邮件以附件的形式发送文件吗?,ios,objective-c,email,attachment,uidocument,Ios,Objective C,Email,Attachment,Uidocument,我正在使用Xcode 在我的应用程序中,我在那个位置保存了一些UIdocuments [[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask]; 我正在寻找一种共享文档的方法,我的第一个选择是通过电子邮件 我可以通过电子邮件将这些文件作为附件发送吗?然后,我可以用另一台具有相同应用程序的设备打开吗?要发送任何附件,您需要将内容放入NSData对象中。如果文档在

我正在使用Xcode

在我的应用程序中,我在那个位置保存了一些UIdocuments

[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask];
我正在寻找一种共享文档的方法,我的第一个选择是通过电子邮件


我可以通过电子邮件将这些文件作为附件发送吗?然后,我可以用另一台具有相同应用程序的设备打开吗?

要发送任何附件,您需要将内容放入
NSData
对象中。如果文档在磁盘上,那么这很简单。您只需要文档的路径或文件URL。然后可以使用路径或URL创建
NSData
对象


如果电子邮件接收者拥有相同的应用程序,并且该应用程序已设置为显示在此类文档的“打开位置”菜单中,则用户可以从附件中打开该应用程序。然后,当你的应用程序被要求打开这种类型的文件时,你只需要知道该怎么做。这里有大量现有文档和问题,描述了如何注册应用程序以打开某些文件类型。

您可以执行以下操作

创建
MFMailComposeViewController
并使用
-(void)addAttachmentData:(NSData*)附件mimeType:(NSString*)mimeType文件名:(NSString*)文件名
方法添加附件

比如说

MFMailComposeViewController *mailVC = [[MFMailComposeViewController alloc] init];
[mailVC setSubject:@"Shared documents"];
[mailVC setToRecipients:@[@"sample@example.com"]];
[mailVC setMessageBody:@"Here the docs I want to share" isHTML:NO];
[mailComposer addAttachmentData:pdfData mimeType:@"application/pdf" fileName:@"file.pdf"];

[mailVC setMailComposeDelegate:self];

[self presentViewController:mailVC animated:YES completion:nil];
其中,
pdfData
的类型为
NSData
。因此,您需要将文档转换为
NSData

来自苹果医生

addAttachmentData:mimeType:fileName:
此方法将指定的数据附加到消息正文之后,但 在用户签名之前。您可以附加多个文件(使用 不同的文件名),但必须在显示邮件之前执行此操作 合成界面。在显示后不要调用此方法 用户界面

关于你问题的第二部分。你能解释一下你需要显示什么类型的文件吗


同时,请查看。

您是否尝试了我的代码?Cheers.throw该错误…架构armv7的未定义符号:“\u OBJC\u CLASS\u$\ u MFMailComposeViewController”,引用自DropsViewController中的:OBJC CLASS ref。o ld:symbol未找到架构armv7的clang:error:linker命令失败,退出代码为1(使用-v查看调用)。您需要为此导入框架。它被称为MessageUI.framework。遵循本教程中的步骤3。我解决了这个问题:)。。。我使用dataWithContentsOfFile获取添加附件的NSData
NSData*myData=[NSData dataWithContentsOfFile:路径选项:0错误:&错误]现在它抛出一个错误“操作无法完成。权限被拒绝”。文件位于NSFilePath=/private/var/mobile/Applications/E296F71E-25FF-4B9E-A9FF-9E6D74D7D63A/Documents/File.drp。我怎样才能给予许可?我可以将文件移动到哪里?何时收到错误?我将UIDocument子类化,具有特定扩展名。我的想法是通过邮件将其发送到应用程序的其他设备并打开它。我能用“open in”打开任何像“drp”这样的扩展吗?我有点困惑,可能很愚蠢,什么是mailComposer?@user2441567它是用来发送电子邮件的。