2016-09-12 1 views
0

Ich erstelle eine os x App mit Kerndaten. wenn ich das Modell modifiziere. Der Fehler ist aufgetreten, der im Bild angezeigt wird. Der Grund dafür ist: "Das Modell, das zum Öffnen des Geschäfts verwendet wird, ist mit dem zum Erstellen des Geschäfts verwendeten Modell nicht kompatibel"; wie man diesen Fehler beheben kann. Dieser Fehler wurde behoben, indem ich den Simulator in der iOS App löschte. wie man das in der os x app beheben kann.Grund = "Das zum Öffnen des Geschäfts verwendete Modell ist mit dem zum Erstellen des Geschäfts verwendeten Modell inkompatibel"

enter image description here

Antwort

0

Wählen Sie Finder und gehen Sie zu Bibliothek von Go, indem Sie Optionsfeld auf der Tastatur klicken. Suchen Sie dann in der Bibliothek mithilfe der Bundle-ID Ihrer App. lösche den Ordner damit. Wenn Sie dann die Anwendung neu starten, wird der Ordner ohne Daten neu erstellt und Sie können ihn gemäß Ihrem neuen Modell erneut füllen.

0

Wenn Sie den Code anschauen, die Ihre persistentStoreCoordinator einrichtet, sollte es Ihnen sagen, wo der Speicher für Ihre Objekte befindet und den Dateinamen. (Der Standardspeicherort der Apple-Vorlage wird von der applicationDocumentsDirectory-Methode im App-Delegaten bereitgestellt.)

0

Der übliche Speicherort für den Datenspeicher einer nicht auf Dokumenten basierenden Anwendung von Core Data ist ~/Library/Application/Support/com.mydomain.myapp/CocoaAppCD.storedata.

Benennen Sie diese Datei um oder löschen Sie sie (je nachdem, ob der Inhalt verfügbar ist).

Wenn Sie Ihre Anwendung neu starten, wird die Datei ohne Daten neu erstellt, und Sie können sie entsprechend Ihrem neuen Modell erneut ausfüllen.

Mit Produktionsversionen Ihrer Anwendung würde eine Modelländerung eine formale leichte oder starke Migration erfordern, um die Benutzerdaten zu bewahren.

0

Als Erleichterung bei der Inbetriebnahme ich den Ort der Datenbank an die Konsole aus wie folgt:

// Get/print location of database for use in testing/debugging 

    let paths = NSSearchPathForDirectoriesInDomains(FileManager.SearchPathDirectory.documentDirectory, FileManager.SearchPathDomainMask.userDomainMask, true) 
    let path = paths[0] + "/LocalStore.sqlite" 
    print(path.trimmingCharacters(in: CharacterSet.whitespacesAndNewlines)) 

Außerdem zu sehen ist einfach zu bedienen, kann ich nur wählen/Kopie/Vergangenheit diese in verwenden, sqliteBrowser.

Verwandte Themen