如何修复此崩溃?Xcode 6 Swift
我只编写了两个功能。MailComposer和WebView。但是,当我运行我的应用程序并转到“电子邮件界面”选项卡时,它会崩溃“致命错误:在展开可选值(lldb)时意外发现零”。当我转到显示webview的选项卡时,它工作正常。loadRequest(request)将邮件编码搞得一团糟。但我不知道我可以把它放在哪里使这两个功能都工作 如果有人知道如何解决这个问题,请告诉我。谢谢 以下是View.Controller.Swift文件的编码如何修复此崩溃?Xcode 6 Swift,xcode,swift,webview,crash,mfmailcomposer,Xcode,Swift,Webview,Crash,Mfmailcomposer,我只编写了两个功能。MailComposer和WebView。但是,当我运行我的应用程序并转到“电子邮件界面”选项卡时,它会崩溃“致命错误:在展开可选值(lldb)时意外发现零”。当我转到显示webview的选项卡时,它工作正常。loadRequest(request)将邮件编码搞得一团糟。但我不知道我可以把它放在哪里使这两个功能都工作 如果有人知道如何解决这个问题,请告诉我。谢谢 以下是View.Controller.Swift文件的编码 import UIKit import Message
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)
}
}
确保没有警告消息,并在
视图控制器中绑定所有@IBOutlet
关于这一点,有很多问题/答案。问题是你的代码>变量不在Interface Builder中绑定,因此当第一次访问它们时,代码>导致(预期)崩溃。(请参阅)如何在界面生成器中绑定它们?@PhillipLebsack请确保您的代码>变量是!=无
在对其执行任何操作之前谢谢您。。。你能做一个关于如何做到这一点的教程吗?在Xcode中,控件将UI元素拖到它的@IBOutlet
上。使用“ShowtheAssistantEditor”设置Xcode,以便在源代码窗格旁边有IB窗格。(还有其他方法;Xcode UI教程也会提供)。当@IBOutlet
被绑定时,在源代码中@IBOutlet
旁边会有一个填充的圆圈。那么我该如何实际修复它呢?我已经尝试了我能想到的一切。崩溃的原因是Webview.loadRequest(请求)。但它绑定到UIWebView。那么,为什么当我尝试转到邮件界面时它会崩溃呢?