【发布时间】:2014-08-10 06:08:00
【问题描述】:
这是示例代码:
import UIKit
import MessageUI
class ViewController: UIViewController, MFMailComposeViewControllerDelegate {
@IBAction func showEmail(sender : AnyObject) {
var emailTitle = "Test Email"
var messageBody = "This is a test email body"
var toRecipents = ["a.nakhimov@gmail.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)
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
func mailComposeController(controller:MFMailComposeViewController, didFinishWithResult result:MFMailComposeResult, error:NSError) {
switch result {
case MFMailComposeResultCancelled:
NSLog("Mail cancelled")
case MFMailComposeResultSaved:
NSLog("Mail saved")
case MFMailComposeResultSent:
NSLog("Mail sent")
case MFMailComposeResultFailed:
NSLog("Mail sent failure: %@", [error.localizedDescription])
default:
break
}
self.dismissViewControllerAnimated(false, completion: nil)
}
}
在函数 mailComposeController 中,每个 case 表达式都会出错:
找不到接受所提供参数的重载“~=”。
我做错了什么?
【问题讨论】:
-
您是否尝试过将
switch案例转换为Swift-conform?像case MFMailComposeResult.Cancelled:等等...?我在 Swift 中找不到关于这个enum的参考资料,所以我的想法宁愿是一个问题而不是一个纯粹的解决方案。 -
刚试过:MFMailComposeResult.Type 没有名为 'Canceled' 的成员等
-
提示:应尽可能使用
let而不是var
标签: objective-c uiviewcontroller swift ios8 mfmailcomposer