Ich fand die obigen Antworten wirklich nützlich, insbesondere die Antwort von Nick Lockwood.
Ich habe gerade einige Ordner in Xcode 8 umbenannt und bin auf zwei weitere Probleme gestoßen: A) "Fehlt bei Arbeitskopierfehlern"
B) Core Data stürzt ab .
So lösen Sie diese beiden Probleme:
EIN) " fehlt bei Arbeitskopierfehlern "
Ich fand die folgende Antwort sehr nützlich: Swift 3 / Xcode 8 Upgrade - Hunderte von DerivedData-Dateien fehlen bei Arbeitskopierfehlern
Grundsätzlich verfügt Xcode 8 über eine strenge Quellcodeverwaltung, die zu den oben genannten Fehlern führen kann. Sie müssen:
- Bereinigen Sie die von Xcode abgeleiteten Daten.
- Gehen Sie zur Quellcodeverwaltung und klicken Sie auf Status aktualisieren.
- Gehen Sie zur Quellcodeverwaltung und klicken Sie auf Festschreiben. Wählen Sie beim Festschreiben alle Dateien in der linken Seitenleiste des Festschreibungsmenüs aus (Rechtsklick -> Alle auswählen).
- Sie werden wahrscheinlich eine Fehlermeldung erhalten.
- Schließen Sie das Commit-Menü.
- Status aktualisieren.
- Schließen Sie Ihr Projekt, indem Sie Xcode beenden.
- Öffnen Sie Ihr Projekt erneut, aktualisieren Sie den Status und legen Sie es erneut fest.
- Dieses Mal sollte das Commit funktionieren.
- Klicken Sie auf Projekt -> Reinigen.
Ich gehe davon aus, dass Sie die Quellcodeverwaltung bereits aktiviert haben. Wenn Sie dies nicht getan haben oder wenn Sie meinen Anweisungen nicht folgen, befolgen Sie einfach die detaillierteren Anweisungen unter dem angegebenen Link.
B) Core Data stürzt ab
Das Umbenennen von Ordnern führt manchmal zu Problemen mit den Kerndaten. Es gibt mehrere mögliche Gründe, warum dies so ist, und im Folgenden sind einige Korrekturen aufgeführt, die ich vorschlagen kann:
Falsche AppDelegate Modellnamen. Dies war in meiner Situation der Fall. Gehen Sie zu Ihrem AppDelegate und finden Sie let container = NSPersistentContainer(name: "YOUR CORE DATA MODEL NAME")
. Stellen Sie sicher, dass der Name korrekt ist.
In Zukunft (einige Jahre nach diesem Beitrag, wenn Apple Core Data erneut ändert) oder wenn Sie eine ältere Version von Core Data verwenden, sollten Sie sich AppDelegate genau ansehen. Es gibt wahrscheinlich etwas Funky, das mit Ihren Kerndaten herumspielt.
Falscher Modellname in xcdatamodeld . Gehen Sie zum Finder und öffnen Sie Ihre .xcdatamodeld in einem Texteditor.
Überprüfe das Folgende:
<plist version="1.0">
<dict>
<key>_XCCurrentVersionName</key>
<string>YOUR CORE DATA MODEL NAME.xcdatamodel</string> <-- Make sure this is correct.
</dict>
</plist>
Weitere Details hier: Core Data-Modelldateien werden beim Umbenennen nicht geladen
- Wenn die beiden oben genannten Punkte nicht funktionieren, versuchen Sie, 1) Ihre Entität zu löschen und dann eine andere Entität hinzuzufügen, die identisch ist, oder 2) Ihr xcdatamodeld zu löschen und dann ein anderes Datenmodell hinzuzufügen, das identisch ist (und sicherzustellen, dass der Name des neuen xcdatamodeld übereinstimmt Was ist in Ihrem AppDelegate und dem Rest Ihres Codes). Tun Sie dies niemals mit einer Live-App - oder stellen Sie in diesem Fall sicher, dass Sie Ihre Kerndaten ordnungsgemäß migrieren.