2017-12-30 44 views
0

Da zu High Sierra Upgrade, ich habe diese Warnungen wurde immer, wenn die Anwendung meiner Kerndaten beendet:Wie Eliminierung der Kerndaten sqlite Warnmeldung, wenn die Anwendung beendet wird?

BUG IN DER KUNDE libsqlite3.dylib:

V-Knoten unlinked während im Einsatz: die Integrität der Datenbank durch API Verletzung beeinträchtigt

Ich habe keine wirklichen Probleme gesehen, aber ich frage mich, ob es etwas Abbaucode gibt, den ich in der Anwendung ShouldTerminate() hinzugefügt haben sollte?

Momentan speichere ich nur den Kontext, wenn es Änderungen vor der Rückkehr .terminateNow hat.

+0

Könnten Sie bitte Ihren Titel von * Fehler * zu * Warnung * ändern? Vielen Dank. Es macht einen Unterschied. – dfd

+0

Geändert wie gewünscht. – closetCoder

+0

Zeig uns, was du bisher gemacht hast. –

Antwort

0

OK, ich habe es herausgefunden. Da mein persistenter Speicher vertrauliche Daten enthielt, verschlüsselte ich die Dateien auf der Festplatte als letzten Schritt vor dem Herunterfahren. Der Core Data-Stack hat sie jedoch zu diesem Zeitpunkt noch im Close-Down-Prozess referenziert.

Die Lösung bestand darin, Code hinzuzufügen, um die persistenten Speicher zu entfernen, bevor der Code zum Verschlüsseln der Dateien ausgeführt wurde.

for store in managedObjectContext!.persistentStoreCoordinator!.persistentStores { 
     try! managedObjectContext!.persistentStoreCoordinator!.remove(store) 
    } 
Verwandte Themen