Firebaseを使用した最後のメッセージでこの簡単なチャットアプリを作ったが、このエラーが発生していて、それを過ぎているようには見えない。私は@ IBOutletsのような多くのものをチェックしましたが、問題を解決することはできません。誰も私が "致命的なエラーを修正するのを助けることができます:オプションのアンラップ中に予期せずnilが見つかりました"。問題は、すべての標準データ型であるか、@IBOutletsのようにダウンキャストされているからです。以下はビューコントローラの1つのコードです:アプリケーションをクラッシュさせているもの。どんな助けも、どんな方向に向かうべきかのアドバイスとなるでしょう。ありがとうございました!ここでチャットアプリケーションのデバッグ
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 weak var nameField:UITextField!' – EQOxx123
それで、後で 'nameField'を呼び出すとどこかでnilが見つかる。私はどこで見つけることができません。ありがとう。 – EQOxx123