将图像附加到电子邮件按钮

时间:2015-11-02 19:02:18

标签: ios swift

我正在尝试将图片.png附加到电子邮件中 任何人都可以告诉我,我做错了什么? 提前谢谢....

restTemplate

2 个答案:

答案 0 :(得分:1)

您还没有设置mailComposerVC是什么 - 您告诉您的代码使用尚未定义的行。从Swift 1.2开始,您必须先定义常量才能使用它。尝试在代码中进一步移动let ...语句,或使用之前定义的常量。

答案 1 :(得分:1)

您的代码现在看起来正确,除了几件事。首先:你应该留下self.presentViewController(mailComposeViewController,animated:true,completion:nil)行并在将图像附加到mailComposeViewController之后放置它 - 你仍然需要显示这个控制器。第二:你得到错误的原因是你没有为myUIImage设置价值并试图使用"隐含地展开这个值!"标志。如果属性可以为nil,则使用可选类型。我的意思是myUIImage属性应该是UIImage?而不是UIImage!然后检查是否应该设置图像。因此,代码的最终版本应该是这样的:

var myImage: UIImage?
@IBAction func shareThisApp(sender: AnyObject) {  
    let mailComposeViewController = ShareAppEmail()
    if MFMailComposeViewController.canSendMail() {
         if let myImage = myImage,
            let myImageData = UIImagePNGRepresentation(myImage) {
             mailComposeViewController.addAttachmentData(myImageData, mimeType: "image/png", fileName: "image.png")
             presentViewController(mailComposeViewController, animated: true, completion: nil)
         } else {
             // myImage is not set or have wrong format
         }
   } else {
       self.showSendMailErrorAlert()
   }
}
// dropping func ShareAppEmail() cause everything seems correct there