Das könnte eine ziemlich lange Antwort sein. Es wäre am besten, es als Tutorial zu erklären. Der folgende Link zeigt Ihnen was zu tun ist.
http://www.appcoda.com/core-data-preload-sqlite-database/
fand ich den Anfang des Artikels/tutorial und das Ende nützlich für das, was Sie zu tun versuchen.
Ich habe vor kurzem Daten in eine App für ein Quiz geladen, mit einem separaten Xcode-Simulator, um die 3 benötigten SQLite-Dateien zu erstellen. Dieser Artikel zeigt Ihnen, wie man sie, findet, wie man sie "" in Ihrem Xcode Projekt "bündelt", das Sie "vorladen" und Ihnen den Code mitteilen möchten, der innerhalb Ihrer "AppDelegate.swift" Akte addiert wird und woher.
Es gibt 3 Dinge, die Sie Probleme beim Ausfüllen Ihres Projekts vermeiden helfen ...
Sicherstellen, dass die Entity und Attributnamen (in Ihrem Datenmodell (Core Data)) für die Daten, die Sie im Simulator erstellen (separates Projekt), sind identisch mit denen im Projekt, das Sie 'PreLoad' verwenden möchten. [Ansonsten ist die Vorbelastung WONT Arbeit]
Der Code in ‚AppDelegate.swift‘ ist so konzipiert, fügen Sie Ihre App als lenken, wo für die vorinstallierten Daten gehen (das beiliegende Tutorial sehen), aber ich fand Ich musste den Code zwicken, um es zu arbeiten ... (notiert unten)
Nichts wird vom 'AppDelegate gelöscht.swift 'Datei, nur hinzugefügt, und die Namen der 3 SQLite-Dateien hinzugefügt, um es ... z.
In 'AppDelegate.swift' im Core Data Stack ... Sie finden ...
lazy var managedObjectModel: NSManagedObjectModel = {
// The managed object model for the application. This property is not optional. It is a fatal error for the application not to be able to find and load its model.
let modelURL = NSBundle.mainBundle().URLForResource("EoMQ", withExtension: "momd")!
return NSManagedObjectModel(contentsOfURL: modelURL)!
}()
dieses allein verlassen, aber direcly unterhalb dieses müssen Sie die haben, aber mit drei dif folgendem Code ...
// ---------------------------------------------------
// Create the coordinator and store
let coordinator = NSPersistentStoreCoordinator(managedObjectModel: self.managedObjectModel)
let url = self.applicationDocumentsDirectory.URLByAppendingPathComponent("Q100cdCoreData.sqlite") // originally = "SingleViewCoreData.sqlite" - then changed to new name... from imported sqlite files
// ---------------------------------------------------
// ** Load the Already made DB from Simulator **
if !NSFileManager.defaultManager().fileExistsAtPath(url.path!) {
let sourceSqliteURLs = [NSBundle.mainBundle().URLForResource("Q100cdCoreData", withExtension: "sqlite")!, NSBundle.mainBundle().URLForResource("Q100cdCoreData", withExtension: "sqlite-wal")!, NSBundle.mainBundle().URLForResource("Q100cdCoreData", withExtension: "sqlite-shm")!]
let destSqliteURLs = [self.applicationDocumentsDirectory.URLByAppendingPathComponent("Q100cdCoreData.sqlite"), self.applicationDocumentsDirectory.URLByAppendingPathComponent("Q100cdCoreData.sqlite-wal"), self.applicationDocumentsDirectory.URLByAppendingPathComponent("Q100cdCoreData.sqlite-shm")]
for index in 0 ..< sourceSqliteURLs.count {
do {
try NSFileManager.defaultManager().copyItemAtURL(sourceSqliteURLs[index], toURL: destSqliteURLs[index])
} catch {
print(error)
}
}
}
die 3 Dateien, die ich im Simulator erstellt hatte, wurden "Q100cdCoreData" genannt andere Erweiterungen ... (a) .sqlite (b) .wal (c) .shm
Aber Sie müssen durch das Tutorial gehen und den Prozess verstehen.
Hallo. Freut mich, Ihnen behilflich zu sein. Wenn die Antwort ihrer normalen Praxis hilft, den Annahmemarker in der relevanten Antwort anzukreuzen. Alles Gute für dein Projekt !! – devim1