1

リソースフォルダーからメールにローカルファイルを送信したいのですが、ローカルファイルを追加する方法が機能していません。以下は、iPhoneのドキュメントフォルダーからメールを送信するコードですが、リソースフォルダーから送信したい

MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init];
picker.mailComposeDelegate = self;
NSString*giveFileName=@"CPAC_Contract_Equine"; 
NSString *fileName;
//fileName = [[NSString alloc]initWithFormat:@"%@.pdf",giveFileName];

fileName = [[NSString alloc]initWithFormat:@"%@",giveFileName];

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

NSString *documentsDirectory = [paths objectAtIndex:0];

NSString *pdfFileName = [documentsDirectory stringByAppendingPathComponent:fileName];

NSLog(pdfFileName);

NSMutableData *myPdfData = [NSMutableData dataWithContentsOfFile:pdfFileName];
[picker setSubject:@"CPAC Contract for Equine-Sam Veterinarian"];

[picker addAttachmentData:myPdfData mimeType:@"application/pdf" fileName:giveFileName];

[self.navigationController presentViewController:picker animated:YES completion:nil];
4

1 に答える 1

0

投稿するコードはほぼ正しいです。必要なのは、アプリ バンドル内のファイルのパスをファイル パスにすることだけです。コードの次の部分を置き換えます。

 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

 NSString *documentsDirectory = [paths objectAtIndex:0];

 NSString *pdfFileName = [documentsDirectory stringByAppendingPathComponent:fileName];

バンドルからファイルをロードするだけです:

 NSString *pdfFileName = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:fileName];
于 2013-05-23T09:23:59.850 に答える