2016-01-13 88 views
1

我有下面的代碼是假設將已命名的這是創建並放置到臨時目錄中,例如迅速pdf文件不附加到電子郵件

pdfFileUrl = "\(NSTemporaryDirectory())file.pdf" 

但電子郵件「file.pdf」文件沒有我的執着,因爲我因爲你的文件放置到用戶的臨時文件夾也期待

@IBAction func sendEmail(sender: AnyObject) { 

    createReportPDF() 

    if MFMailComposeViewController.canSendMail() { 
     let mail = MFMailComposeViewController() 
     mail.mailComposeDelegate = self 
     mail.setToRecipients(["[email protected]"]) 
     mail.setMessageBody("<p>You're so awesome!</p>", isHTML: true) 
     if let filePath = NSBundle.mainBundle().pathForResource(pdfFileUrl, ofType: "pdf") { 
      print("File path loaded.") 

      if let fileData = NSData(contentsOfFile: filePath) { 
       print("File data loaded.") 
       mail.addAttachmentData(fileData, mimeType: "application/pdf", fileName: "file.pdf") 
      } 
     } 

     presentViewController(mail, animated: true, completion: nil) 
    } else { 
     // show failure alert 
    } 
} 
+0

你怎麼照見就像日誌輸出一樣?我只是想確定邏輯在哪裏可能是錯誤的。 –

+0

我的打印語句都不打印。所以它看起來像if let filePath失敗..不知道爲什麼 – ddpishere

+0

你的pdfFileUrl格式是什麼格式?你能打印出來嗎? –

回答

0

,我不認爲這將是從一個NSBundle方法訪問。這就是說,如果你直接寫NSData到磁盤的臨時文件夾中,然後通過電子郵件發送它,你可能要考慮只是路過那個變量(pdfData),以郵件控制,如:

mail.addAttachmentData(pdfData, mimeType: "application/pdf", fileName: "file.pdf") 
+0

沒有PDF文件作爲應用程序的一部分生成,並且未捆綁。它被保存在臨時文件夾中。我可以查看pdf,所以我知道它是在那裏 – ddpishere

+0

你可以發佈變量'pdfFileUrl'的代碼嗎? –

+0

確定它是 'pdfFileUrl =「\(NSTemporaryDirectory())file.pdf」' 'pdfData.writeToFile(pdfFileUrl,atomically:true)' – ddpishere