Ich bin neu in Swift Programmierung und habe an einer To-Do List App gearbeitet. Ich versuche, die permanente Datenspeicherung zu verwenden, um die Informationen vom Benutzer eingegeben zu speichern, aber ich bekomme immer den Fehler "Thread 1: signal SIGABRT
„Wenn ich das Ausgabeprotokoll überprüft, sehe ich den FehlerThread 1: Signal SIGABRT Muting-Methode an unveränderliches Objekt gesendet '
“ Beenden app aufgrund nicht abgefangene Ausnahme 'NSInternalInconsistencyException', Grund: '- [__ NSCFArray insert: atIndex:]: Mutieren Methode unveränderliches Objekt gesendet'“
Mein Code ist unten ich benutze eine einfache Textbox und eine Schaltfläche:
@IBOutlet var text1: UITextField!
@IBAction func button1(_ sender: AnyObject) {
let listObject = UserDefaults.standard.object(forKey: "lists")
var items:NSMutableArray
if let tempitems = listObject as? NSMutableArray {
items = tempitems
items.addObjects(from: [text1.text!])
} else {
items = [text1.text!]
}
UserDefaults.standard.set(items, forKey: "lists")
text1.text = ""
}
.
Hallo .. Danke .. Das hat funktioniert. Aber was ich nicht verstehe ist, welcher Teil im Code ein unveränderliches Objekt ist. Weil ich es als NSMutableArray spezifiziert habe und ich dachte, dass es zuweist und kann später geändert werden. –
** Deklarieren ** die Variable als veränderbar, aber dann zuweisen ** es zu einem unveränderlichen Array machen es unveränderlich. Es ist wahrscheinlich ein Fehler, dass Ihre Zeile 'if let ...' erfolgreich ist –