ios - 在 Swift 中发送应用程序电子邮件

标签 ios email swift

在 Swift 中执行此操作时遇到问题。在 Objective C 中非常容易。我在日志中得到的错误是这样的:

2015-01-31 22:16:58.734 fun facts[15208:623304] Unknown class Settings in Interface Builder file.
2015-01-31 22:17:10.783 fun facts[15208:623304] -[UIViewController sendEmail:]: unrecognized selector sent to instance 0x7f9b7bc2fa30
2015-01-31 22:17:10.794 fun facts[15208:623304] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIViewController sendEmail:]: unrecognized selector sent to instance 0x7f9b7bc2fa30'

请参阅下面的代码。知道我做错了什么吗?

//////////////////////SEND EMAIL


    @IBAction func sendEmail(sender: AnyObject) {

        var emailTitle = "Test Email"
        var messageBody = "This is a test email body"
        var toRecipents = ["yolo@mail.com"]
        var mc: MFMailComposeViewController = MFMailComposeViewController()
        mc.mailComposeDelegate = self
        mc.setSubject(emailTitle)
        mc.setMessageBody(messageBody, isHTML: false)
        mc.setToRecipients(toRecipents)

        self.presentViewController(mc, animated: true, completion: nil)
    }



    func mailComposeController(controller:MFMailComposeViewController, didFinishWithResult result:MFMailComposeResult, error:NSError) {
        switch result.value {
        case MFMailComposeResultCancelled.value:
            println("Mail cancelled")
        case MFMailComposeResultSaved.value:
            println("Mail saved")
        case MFMailComposeResultSent.value:
            println("Mail sent")
        case MFMailComposeResultFailed.value:
            println("Mail sent failure: \(error.localizedDescription)")
        default:
            break
        }
        self.dismissViewControllerAnimated(false, completion: nil)
}

}

最佳答案

如果您不小心将 View 的类设置为不兼容的自定义类,就会发生这种错误;例如,不小心将 UIButton 的自定义类设置为“Settings”,即本例中的 UIViewController 类,可能会导致您的特定错误。

关于ios - 在 Swift 中发送应用程序电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28256995/

相关文章:

ios - 单击 DetailView 上的菜单按钮时,主视图应隐藏/取消隐藏

iPhone 编码 : How can I set a variable in a ViewController from another?

javascript - 我可以使用 JavaScript 创建客户端电子邮件吗?

javascript - 通过 PHPmailer 发送多个复选框值

ios - 设置包未与 NSUserDefaults 同步

ios - NSInputStream 缓冲区的大小

email - 使用 `Gmail SMTP` 从我的 Web 应用程序发送 `mail`。但是收到身份验证错误

ios - 如何将 xib 文件加载为自定义类?

swift - 双重检查锁优化以在 Swift 中实现线程安全的延迟加载

ios - 从不同的 View Controller 访问 textField.text 变量