【发布时间】:2016-04-03 16:19:50
【问题描述】:
我制作了一个自定义框架 (Swift),我在几个不同的应用程序中使用它。
我在这个框架中添加的一个功能是一个基本的电子邮件客户端。
代码如下,但它目前描述了以下行为:
最初完美加载电子邮件页面视图,所有字段都按照我的预期显示(即地址、密件抄送、主题、附件等),但是当我按下发送或取消时,应用程序崩溃。它实际上发送电子邮件。我在“public func mailComposeController(controller: MFMailComposeViewController, didFinishWithResult result: MFMailComposeResult, error: NSError?)”中打印了一个打印件,但从未打印过。
请看下面的代码:
框架
import UIKit
import MessageUI
public class Framework_Email : NSObject, MFMailComposeViewControllerDelegate{
var picker : MFMailComposeViewController!
public var EmailSubject : String = ""
public var EmailMessage : String = ""
public var EmailAddress : [String] = []
public var EmailBlindAddress : [String] = []
public var EmailAttachment : [NSDictionary] = []
public func SendEmail(View : UIViewController)
{
picker = MFMailComposeViewController()
picker.mailComposeDelegate = self
picker.setToRecipients(EmailAddress)
picker.setSubject(EmailSubject)
picker.setMessageBody(EmailMessage, isHTML: false)
picker.setBccRecipients(EmailBlindAddress)
for temp in EmailAttachment
{
picker.addAttachmentData(temp["Data"] as! NSData, mimeType: temp["Type"] as! String, fileName: temp["Name"]as! String)
}
View.presentViewController(picker, animated: true, completion: nil)
}
public func mailComposeController(controller: MFMailComposeViewController, didFinishWithResult result: MFMailComposeResult, error: NSError?) {
print("Im Here!!!!!") //This is never seen in the output
picker.dismissViewControllerAnimated(true, completion: nil)
}
}
我在我的主应用程序视图控制器中通过以下方式调用它
let EmailClient : Framework_Email = Framework_Email()
EmailClient.EmailAddress = ["email@eailaddress.co.uk"]
EmailClient.EmailMessage = "Email Message"
EmailClient.EmailSubject = "Email Subject"
EmailClient.EmailBlindAddress = ["email@eailaddress.co.uk"]
EmailClient.SendEmail(self)
谁能建议为什么这不起作用?
谢谢
【问题讨论】:
标签: swift email frameworks