MFMailComposeViewController、Swift 4、Xcode 9

2024-04-25

我的 MFMailComposeViewControllerDelegate 函数有问题。

func mailComposeController(_ controller: MFMailComposeViewController, didFinishWith result: MFMailComposeResult, error: Error?) {
    controller.dismiss(animated: true, completion: nil)
}

警告说

实例方法'mailComposeController(:didFinishWith:error:)' 几乎匹配可选要求 'mailComposeController(协议“MFMailComposeViewControllerDelegate”的 :didFinishWith:error:)'

将“mailComposeController(_:didFinishWith:error:)”设置为私有以消除此警告

我需要将用户返回到应用程序并在单击取消后关闭 MFMailComposeViewController 并且不会触发此功能。

是的,我添加了代表composeVC.mailComposeDelegate = self

如果有人遇到类似的问题,我将不胜感激。谢谢

EDIT

仅当我将语言设置为 Swift 4 时,才会发生这种行为。我刚刚返回了几次提交,它在 Swift 3.2 上运行得非常好

基本上,这是代码:

class TechSupportVC: UIViewController, MFMailComposeViewControllerDelegate {
    let composeVC = MFMailComposeViewController()

override func viewDidLoad() {
    super.viewDidLoad()

    composeVC.mailComposeDelegate = self
    composeVC.setToRecipients(["[email protected] /cdn-cgi/l/email-protection"])
    composeVC.setSubject("My message")
}

func mailComposeController(_ controller: MFMailComposeViewController, didFinishWith result: MFMailComposeResult, error: Error?) {
    controller.dismiss(animated: true, completion: nil)
}

@IBAction func sendPressed(_ sender: Any) {
    guard MFMailComposeViewController.canSendMail() else {
        showMailServiceErrorAlert()
        return
    }

    composeVC.setMessageBody("Test credentials: \(firstAndLastNameTextField.text!)\nPhone: \(numberTextField.text!)\n\n\(messageTextView.text!)", isHTML: false)

    self.present(composeVC, animated: true, completion: nil)
}

}


我无法申请Đorđe 的解决方案, https://stackoverflow.com/a/48708308/1162044 this 其他答案 https://stackoverflow.com/a/39623586/1162044帮助过我。

func mailComposeController(_ controller: MFMailComposeViewController,
                           didFinishWith result: MFMailComposeResult,
                           error: Swift.Error?) {
    controller.dismiss(animated: true, completion: nil)
}

Adding Swift.前缀为Error?解决了问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MFMailComposeViewController、Swift 4、Xcode 9 的相关文章

随机推荐

  • seo - 图像和 h1

    我遇到一种情况 我想坚持使用我的徽标而不是 h1 标签的实际文本 如果我将关键字放在 alt 标签中 而不是实际编写 我会在 SEO 上受到影响吗 文本和图像同时存在更好吗 想法 div h1 a href img src logo jpg
  • Spark 编码器:何时使用 beans()

    我在使用Spark的缓存机制时遇到了内存管理问题 我目前正在使用Encoder我正在使用 Kryo 想知道切换到 beans 是否可以帮助我减少缓存数据集的大小 基本上 在使用时使用 beans 相对于 Kryo 序列化有哪些优点和缺点En
  • 已将数据预先填充到资产中的领域?

    通常我使用 Realm 作为 RealmConfiguration config new RealmConfiguration Builder applicationContext deleteRealmIfMigrationNeeded
  • 匹配嵌套的html注释块正则表达式[重复]

    这个问题在这里已经有答案了 我有这个 html 代码块 some html content here top base some html content here 1 top some html content here 2 top so
  • Magento Connect 登录后尝试更改为什么路径?

    我每次都会收到错误消息 部署 FTP 错误 登录后无法 chdir 我通过 chmod ing 我的 complete path to magento installation dir 成功完成了第一次连接和设置下载器 至 0777 在 d
  • Apache Tomcat 服务器不在添加新服务器的列表中

    我需要添加 Apache Tomcat 服务器 但 Apache 文件夹中只有 Geronimo 服务器 如何解决这个问题 STS 4 0 0 0 M12 STS4 发行版不包含这些开箱即用的适配器 因为我们出于各种原因 减少启动时间 减小
  • Angular 2 - 使用共享服务

    看起来共享服务是解决许多情况的最佳实践 例如组件之间的通信或替换旧的 Angular 1 的 rootscope 概念 我正在尝试创建我的服务 但它不起作用 有什么帮助吗 泰 应用程序组件 ts import Component from
  • 哪里可以下载 Microsoft.Phone.WinJS.2.1?

    我正在尝试使用 WinJS 制作通用 Windows 应用程序 我已经下载了VS2013的最新更新 RC 版本 我已经安装了我能找到的所有 SDK 我还安装了 WinLibJS VSE exe 扩展 有趣的是 VS 更新一直说我没有 当我打
  • 打印时字体颜色发生变化

    我这里有一个非常令人困惑的问题 我有一个动态构建的表 这里可能是一个不重要的事实 但只是让你知道 在网页上 我根据逻辑标准将文本设置为特定颜色 在页面上 看起来很棒 当进行打印预览 和实际打印 时 颜色有很大不同 在我的代码中 颜色是 红色
  • Laravel 通过表名获取模型

    有没有办法通过表名获取模型 例如 我有一个 用户 模型 其表定义为protected table users 现在 我想做的是通过等于 users 的表名获取模型 这个函数更像是相反的Model getTable 我到处搜索但找不到解决方案
  • 使用 BizTalk Web 服务重新发布内部 Web 服务

    我正在尝试使用 BizTalk 在两个 Web 服务之间进行通信 它必须是这样的 Service1获取输入并通过 BizTalk 发送消息Service2 Service2响应该消息 将其转发至 BizTalk 并将其传递至Service1
  • 导出到 Excel 电子表格 (XLSX) 失败

    使用 ASP NET 网页 我将一些数据导出到 Excel 电子表格 XLSX 当我使用 Visual Studio 运行代码时 代码运行良好 它正在导出具有正确数据的 XLSX 文件 但在部署到测试服务器时 相同的代码会失败 它不会抛出任
  • 在 VC9 中编译时不会出现警告级别 4 的警告。为什么人们不认为这是一种编译器缺陷呢?

    我看到一些发布的代码有超出范围的错误 这让我感到好奇 我希望编译器为此代码生成警告 至少在最高级别 pragma warning push 4 int main int x 2 x 2 0 return 0 pragma warning p
  • 如何打印HttpResponse返回的消息?

    我的 Android 手机上有此代码 URI uri new URI url HttpPost post new HttpPost uri HttpClient client new DefaultHttpClient HttpRespon
  • 自定义rightBarButtonItem消失

    我在导航栏中有一个自定义 rightBarButtomItem 的奇怪错误 我有一个 TabBar 应用程序 如果应用程序已加载 按钮将显示正确 如果我单击选项卡 按钮将继续显示 如果我返回到已显示的选项卡之一 该按钮就会消失 最后 该按钮
  • 使用 python 从 HDFS 获取文件名列表

    这里是 Hadoop 菜鸟 我搜索了一些有关 hadoop 和 python 入门的教程 但没有取得太大成功 我还不需要使用映射器和缩减器进行任何工作 但这更多是一个访问问题 作为Hadoop集群的一部分 HDFS 上有一堆 dat 文件
  • 如何使用jquery打开选择输入

    所以我可以看到选择元素的选项 但我需要单击它 如果我想使用一个函数怎么办 当发生某些事情时 应该选择此选择元素 这意味着列表已打开并且我可以看到选项 我不希望用户单击选择元素 我想要其他东西来打开它 我尝试过的 select select
  • PHP readdir 和排序

    我正在做一个小画廊 我想从目录中读取文件名 并在删除一些前导数字和文件扩展名后打印下面的文件名 我有两个版本的代码 版本 1 不排序 current dir DOCUMENT ROOT weddings2 dir opendir curre
  • Android可扩展列表视图片段

    我正在寻找具有可扩展列表视图的片段 搜索后我发现了一个实现可扩展列表视图片段的类https gist github com 1316903 https gist github com 1316903 但我不知道如何使用它 请帮我 我尝试了列
  • MFMailComposeViewController、Swift 4、Xcode 9

    我的 MFMailComposeViewControllerDelegate 函数有问题 func mailComposeController controller MFMailComposeViewController didFinish