2016-09-27 3 views
8

Ich versuche SQLite-Browser zu verwenden, um meine Core Data-Objekte zu sehen. Ich finde nicht, wo die Kerndaten ihre SQL-Datei speichern. Ich habe in den Ordner mit den App-Dokumenten geschaut, aber dort ist nichts.Speicherort der Core-Datendatei iOS 10

Wissen Sie, wo die Kerndaten in IOS 10 (Simulator) seine SQLite-Dateien speichern?

Antwort

15

ich es auf XCode getestet 8 Swift 3 OS macOS Sierra

IOS 10

in Ihrem Appdelegate.swif t

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { 

    let urls = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask) 
    print(urls[urls.count-1] as URL) 

    return true 
} 

1. Die Konsta nt .documentDirectory sagt, wir suchen Dokumentenverzeichnis

2. Die Konstante .userDomainMask unsere Suche auf unserer Anwendung Sandbox zu beschränken.

Ausgang

file:///Users/Ashok/Library/Developer/CoreSimulator/Devices/F629F99F-C745-46EB-8A11-01BC9FF1E592/data/Containers/Data/Application/3B373C93-71A2-46E9-8AF7-EF407C39429F/Documents/ 

Klicken Sie auf Go -> Gehe zum Ordner -> Einfügen Path -> Enter Hit

enter image description here

Dann Bibliothek gehen -> Anwendung Unterstützung -> filename.sqlite

enter image description here

Herausgegeben

ODER

Terminal öffnen und geben Sie find ~ -name 'HitTest.sqlite' und drücken Sie die Eingabetaste.

Ashoks-MacBook-Pro:Desktop Ashok$ find ~ -name 'HitTest.sqlite' 
/Users/Ashok/Library/Developer/CoreSimulator/Devices/F629F99F-C745-46EB-8A11-01BC9FF1E592/data/Containers/Data/Application/3B373C93-71A2-46E9-8AF7-EF407C39429F/Documents/HitTest.sqlite 

Von oben Ausgang kann man deutlich sehen den Pfad Ihrer sqlite db

Sie DB Browser for SQLite verwenden können, zu öffnen.

4

Probieren Sie diese ich überprüfen habe es nicht auf ios 10, aber seine Arbeiten in früheren allen Versionen

Produkt> Schema> Schema bearbeiten> Ausführen> Argumente

dieses Argument hinzufügen in "Argumente bestanden auf Start "

-com.apple.CoreData.SQLDebug 1

Jedes Mal, wenn die Anwendung startet Es Pfad zur Datenbank gedruckt werden See This argument look like this

+0

Vielen Dank für die Antwort. Ich habe es versucht, aber es funktioniert nicht. Ich habe unter Argumente übergeben, die beim Start, -com.apple.CoreData.SQLDebug 1, übergeben, aber dies nichts drucken. Weißt du, warum ? –

+1

@IdanAviv: Siehe http://stackoverflow.com/a/39679571/1187415. –

+0

Vielen Dank Martin! –

0

Für XCODE 8.0 (iOS 10): -

Der Weg zum .sqlite persistenten Speicher ist:

/Users/Ashish/Library/Developer/CoreSimulator/Geräte/"YourDeviceId "/ data/Behälter/Daten/Programme /" Anwendungs-ID "/ Library/Application Support /" FileNamePassedInPersistentContainer.sqlite“

3

Swift 3.x

Lokalisieren Sie didFinishLaunchingWithOptions in Ihrer AppDelegate Datei und fügen Sie diese Zeile hinzu.

let path = NSSearchPathForDirectoriesInDomains(.applicationSupportDirectory, .userDomainMask, true) 
    print("\(path)")