gpt4 book ai didi

ios - MFMailComposeViewControllerDelegate 不工作 Swift 3

转载 作者:搜寻专家 更新时间:2023-10-31 22:02:03 27 4
gpt4 key购买 nike

我在我的一些应用程序中使用邮件编辑器已经有一段时间了,最​​近 mailComposeDelegate 不再被调用。
我不确定这是否与新版本的Swift。
所以,我想我会问问其他人是否有类似的问题。
我可以展示邮件编辑器,但它永远不会因为委托(delegate)不工作而被解雇。

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

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 life 中搜索了一个小时之后)是这样的:

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

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

关于ios - MFMailComposeViewControllerDelegate 不工作 Swift 3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39862536/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com