Ello! Ich arbeite an einer Notes-App für Mac, mit Swift als Sprache. Ich arbeite gerade an einer Speicher- und Ladefunktion und habe einen Fehler gefunden, von dem ich nicht weiß, wie ich ihn beheben soll. Hier ist der problematische Code:Xcode 7 Swift 2 Fehler: Thread 1: EXC_BAD_INSTRUCTION (Code = EXC_1386_INVOP, SUBCODE = 0X0)
import Cocoa
class NoteViewController: ViewController {
@IBOutlet weak var notefield: NSTextField!
@IBOutlet weak var savenamefield: NSTextField!
@IBOutlet weak var loadnamefield: NSTextField!
@IBAction func save(sender: AnyObject) {
// The line below gets the error: Thread 1: EXC_BAD_INSTRUCTION (code=EXC_1386_INVOP, subcode=0x0
NSUserDefaults.standardUserDefaults().setObject(notefield.stringValue, forKey: savenamefield.stringValue)
}
@IBAction func load(sender: AnyObject) {
var name = loadnamefield.stringValue;
var lnote = NSUserDefaults.standardUserDefaults().objectForKey(name)
notefield.stringValue = lnote as! String
}
override func viewDidLoad() {
super.viewDidLoad()
// Do view setup here.
}
}
Was könnte ich falsch machen?
Das ist wahrscheinlich das viel geliebte * Unerwartete gefundene nil ... * Fehler. Sind die Ausgänge in Interface Builder verbunden? Zweiter Gedanke: 'lnote' ist' nil' in der 'load' Methode. Übrigens gibt es in 'NSUserDefaults' eine dedizierte 'stringForKey'-Methode. – vadian
Ich wusste nichts über Stringforkey. Ich könnte das versuchen. Danke für die Empfehlung! –
Es tut nicht weh, die Dokumentation zu lesen ;-) Es gibt einige Geheimnisse zu entdecken ... – vadian