Meine App hat einen Bildschirm, der einige Eingaben wie title: String?
, desc: String?
, dueDate: NSDate?
nimmt. Wenn alle eingegebenen Eingaben zurückgehen und Daten über Delegate/Protokoll zum vorherigen Bildschirm weiterleiten, blockieren Sie andernfalls die Navigation und zeigen Sie die Popup-Warnung an.Unerwarteter Nil beim Auspacken von String? macht App abgestürzt
Dies ist die Codes Eingaben zu validieren und führen Navigation:
func pushView(sender: AnyObject) {
if .........
//Some codes to check inputs
else {
let aReminder = Reminders(title: self.remTitle.text!, dueDate: self.dueDate, desc: self.remDesc.text!)
self.delegate!.addReminder(aReminder)
//error drops on this line
self.navigationController!.popViewControllerAnimated(true)
}
}
Die leeren App prüft Eingaben und zeigt Warnungen bestimmt, wie aber, wenn ich alle Textfelder ausfüllen und Änderung picker machen, ich habe einen Fehler unexpectedly found nil while unwrapping an Optional value
.
Ich habe einen Standardwert auf dueDate
von var dueDate = NSDate()
gesetzt, aber immer noch solche Fehler, während die Textfelder alle ausgefüllt sind.
In welcher Zeile ist der Fehler an? – Sulthan
In 'pushView' in der' if' Klausel suchen Sie nach ** oder ** '|| dueDate == nil' bedeutet, dass in der 'else'-Klausel 'dueDate' ebenfalls' nil' sein kann und beim Entpacken den Absturz verursacht. Die einfachste Lösung besteht darin, ''DeadDate' als nicht-optional zu deklarieren, mit einem Standardwert von 'avar dueDate = NSDate()'. Aber dann müssen Sie alle "nil" Überprüfung der Variablen entfernen. – vadian
Yeh Ich habe einen Standardwert 'var dueDate = NSDate()' gesetzt und den Code repariert, um es auszuführen. Aber die "nil" Warnung erscheint immer noch. –