我已经使用Firebase对最后一条消息进行了这个简单的聊天应用程序,但我一直遇到此错误,似乎无法通过它。我已经检查了许多像@IBOutlets的东西,但我似乎无法解决问题。任何人都可以帮助我解决“致命错误:意外地发现零,而解包可选”。问题是,我似乎无法找到任何可选项,因为一切都只是它的常规数据类型,或者像@IBOutlets一样被低估。以下是我的其中一个视图控制器的代码:导致应用程序崩溃的代码。任何帮助都很棒,或者指导一个什么方向。谢谢!调试聊天应用程序
import UIKit
import Firebase
class ViewTwo : UIViewController {
var ref: Firebase!
var REF: Firebase!
@IBOutlet weak var readMsg: UILabel!
@IBOutlet weak var msg: UITextField!
@IBOutlet weak var nameField: UITextField!
@IBAction func sendMsg(sender: AnyObject) {
nameField.resignFirstResponder()
if nameField.text == "ETHAN" {
ref = Firebase(url: "my-app/Person1Msg")
ref.setValue("\(msg.text)")
REF = ref
} else if nameField.text == "CHASE" {
ref = Firebase(url: "my-app/Person2Msg")
ref.setValue("\(msg.text)")
REF = ref
} else {
msg.placeholder = "Please enter name ALL CAPS"
}
}
override func viewDidAppear(animated: Bool) {
REF.observeEventType(.Value) { (snap: FDataSnapshot!) in
self.readMsg.text = snap.value as? String
}
}
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
self.view.endEditing(true)
}
}
这是我等只有其他视图控制器内的代码,但没有发现错误:
class ViewController : UIViewController {
var accepted: Bool = false
@IBOutlet weak var nameField: UITextField!
@IBAction func submit(sender: AnyObject) {
nameField.resignFirstResponder()
if nameField.text == "CHASE" || nameField.text == "ETHAN" {
accepted = true
} else {
nameField.placeholder = "Please enter correct name ALL CAPS"
}
}
@IBAction func start(sender: AnyObject) {
nameField.resignFirstResponder()
if accepted == true {
let storyboard : UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let nextViewController : UIViewController = storyboard.instantiateViewControllerWithIdentifier("ViewTwo") as UIViewController
self.presentViewController(nextViewController, animated: true, completion: nil)
} else {
}
}
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
self.view.endEditing(true)
}
override func viewDidLoad() {
super.viewDidLoad()
accepted = false
}
}
您是否尝试过设置一个异常断点,看看那里发生异常 – Paulw11
是。这是这行代码:'@IBOutlet弱var nameField:UITextField!' – EQOxx123
因此,稍后当我打电话给'nameField'时,它会找到某处。我只是找不到在哪里。谢谢。 – EQOxx123