当前位置 : 主页 > 手机开发 > ios >

ios – MFMailComposeViewControllerDelegate不工作Swift 3

来源:互联网 收集:自由互联 发布时间:2021-06-11
我已经在我的一些应用程序中使用了邮件编写器一段时间了,而且最近mailComposeDelegate不再被调用.我不确定这是否与新版本的 Swift有关.所以,我想我会问,看看是否有其他人有类似的问题
我已经在我的一些应用程序中使用了邮件编写器一段时间了,而且最近mailComposeDelegate不再被调用.我不确定这是否与新版本的 Swift有关.所以,我想我会问,看看是否有其他人有类似的问题.我可以介绍邮件作曲家,但由于代表不工作,它永远不会被解雇.

以下是我一直使用的代码的精确副本:

func launchFeedback() {
    guard MFMailComposeViewController.canSendMail() else {
        return
    }

    let emailTitle = "Feedback"
    let messageBody = ""
    let toRecipents = ["johnappleseed@icloud.com"]
    mailComposer.mailComposeDelegate = self
    mailComposer.setSubject(emailTitle)
    mailComposer.setMessageBody(messageBody, isHTML: false)
    mailComposer.setToRecipients(toRecipents)
    self.show(mailComposer, sender: self)
}

func mailComposeController(controller: MFMailComposeViewController, didFinishWith result: MFMailComposeResult, error: Error?) {
    print(error)
    controller.dismiss(animated: true, completion: nil)
}
这显然是一个Xcode错误.解决这个问题的唯一方法(在搜索StackOverflow生命一小时后)是这样的:

@objc(mailComposeController:didFinishWithResult:error:)
    func mailComposeController(_ controller: MFMailComposeViewController, didFinishWith result: MFMailComposeResult,error: NSError?) {
        controller.dismiss(animated: true)
    }

请在方法实现之前查看@objc宏.另请注意,最后一个参数必须是NSError类型而不是Apple文档建议的错误(并由Xcode自动完成)

网友评论