我只编码两个功能。 MailComposer 和 WebView。但是,当我运行我的应用程序并转到电子邮件界面选项卡时,它会崩溃“ fatal error :在展开可选值 (lldb) 时意外发现 nil”。当我转到显示 web View 的选项卡时,它工作正常。 Webview.loadRequest(request) 搞乱了邮件编码。但我不知道我可以把它放在哪里让这两个功能都起作用。
如果有人知道如何解决这个问题,请告诉我。谢谢。
这是 View.Controller.Swift 文件的编码...
import UIKit
import MessageUI
class ViewController: UIViewController, MFMailComposeViewControllerDelegate {
@IBOutlet weak var Webview: UIWebView!
@IBOutlet weak var Subject: UITextField!
@IBOutlet weak var Body: UITextView!
var URLPath = "http://google.com"
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
loadAddressURL()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
@IBAction func SendEmail(sender: AnyObject) {
var SubjectText = "Inquiry:"
SubjectText += Subject.text
var MessageBody = Body
var toRecipients = ["phillip.lebsack1@gmail.com"]
var mc: MFMailComposeViewController = MFMailComposeViewController()
mc.mailComposeDelegate = self
mc.setSubject(SubjectText)
mc.setMessageBody(MessageBody.text, isHTML: false)
mc.setToRecipients(toRecipients)
self.presentViewController(mc, animated: true, completion: nil)
}
func mailComposeController(controller: MFMailComposeViewController!, didFinishWithResult result: MFMailComposeResult, error: NSError!) {
switch result.value{
case MFMailComposeResultCancelled.value:
NSLog("Mail Cancelled")
case MFMailComposeResultSaved.value:
NSLog("Mail Saved")
case MFMailComposeResultSent.value:
NSLog("Mail Sent")
case MFMailComposeResultFailed.value:
NSLog("Mail Sent Failure: %@",[error.localizedDescription])
default:
break
}
self.dismissViewControllerAnimated(true, completion: nil)
}
func loadAddressURL(){
let requestURL = NSURL(string:URLPath)
let request = NSURLRequest(URL: requestURL!)
Webview.loadRequest(request)
}
}
最佳答案
确保没有警告信息并绑定(bind)所有@IBOutlet
在您的 ViewController
.
关于xcode - 如何修复此崩溃? Xcode 6 swift ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28892368/