2016-07-24 26 views
1

Ich habe versucht, automatisches Speichern meiner Core Data-basierte Anwendung hinzuzufügen, und es gab eine Zeile Code ich in einem CollectionViewItem zu textDidChange hinzugefügt:Core Data-Befehle Absturz Viewcontroller auch nach löschen

theNote?.updateChangeCount(NSDocumentChangeType.ChangeDone) 

Das gab mir ein Viele Fehler, also habe ich die Zeile auskommentiert. Ich ging dann hinein, um die persistente Filial-Datei von CocoaAppCD.storedata zu löschen, um sie sauberer zu machen (ich bin immer noch in frühen Entwicklungsstadien, so dass alles, was in meinen persistenten Speicher geht, zufälliges Testmaterial ist).

Jetzt finde ich, Core-Daten-Befehle Absturz meines ViewController. Insbesondere diese Funktion:

func createNewNotebook(folderURL: NSURL) 
{ 

    let currentNotebook = Notebook(entity: sv.noteType, insertIntoManagedObjectContext:sv.context) 

    currentNotebook.folderURLstring = folderURL.absoluteString 

    let noteSet = currentNotebook.mutableSetValueForKey("contains") 
    print(String(noteSet)) 

    intakeFilesFromFolder(noteSet, currentFolderURL: folderURL) 

} 

(Notebook und NoteEntity sind die beiden Entitätstypen in meinem Core Data-Modell.) Wenn entweder der currentNotebook.folder ... oder lassen noteSet ... run-Befehle, erhalte ich diese Fehler in meine Konsole:

Brouillon.NoteEntity folderURLstring]: unrecognized selector sent to instance 0x6080000a3a20 

2016-07-24 19:27:02.622 Brouillon[8006:361665] Failed to set (contentViewController) user defined inspected property on (NSWindow): -[Brouillon.NoteEntity folderURLstring]: unrecognized selector sent to instance 0x6080000a3a20 

und die WindowController ist ohne Aussicht leer füllen sie (obwohl die gleichen Aussagen gearbeitet hatte, bevor ich das jetzt kommentierten-out Linie hinzugefügt). Aber wenn ich diese Funktion umgehen, damit die Core Data-Anweisungen nicht ausgeführt werden, werden die Ansichten geladen. Ich hätte gedacht, dass, wenn ich irgendwas Schmutziges in der Datenbank übrig hätte, das Löschen der CocoaAppCD.storedata Datei es hätte reparieren müssen (und ich lösche diese Datei nach jedem Durchlauf). Aber es scheint, als ob etwas in Core Data für mich immer noch muckt - irgendwelche Ideen?

Antwort

0

Ich habe das herausgefunden. Das Problem war, dass ich den falschen Entitätstyp deklariert hatte: mein sv.noteType sollte sv.notebookType sein, da es sich um ein Notebook und nicht um eine NoteEntity handelte. (Der Fehler wäre eingeführt worden, als ich die Klasse instanziiert als SV erstellt habe, als eine Klasse, die meinen ansonsten duplizierten Code enthält.)