2016-07-27 24 views
0

Ich erstellte eine neue Swift-Anwendung von der Vorlage für das Basisdokument. Die Anwendung funktioniert gut, aber für eine neue Version möchte ich hinzufügen leichte Migration.Wo hinzufügen `addPersistentStoreWithType: Konfiguration: URL: Optionen: Fehler:` in Swift Core Data Application?

In der Datendokumentation Kern ich gelesen, dass ich nur noch auf einige Optionen hinzufügen, in der addPersistentStoreWithType:configuration:URL:options:error: Methode, aber wo eigentlich kein Hinweis, wo diese Methode aufgerufen wird/hinzugefügt.

Ich habe die Document Klasse, die von NSPersistentDocument abgeleitet ist und auch die Anwendung delegieren.

  • Was muss ich dem Projekt für Lightweight-Migration hinzufügen?
  • Wo wird die Methode addPersistentStoreWithType:configuration:URL:options:error: aufgerufen?

Antwort

2

Es ist (versteckt) in der Dokumentation von NSPersistentDocument.

You can customize the architecture of the persistence stack by overriding the methods NSPersistentDocument and configurePersistentStoreCoordinator(for:ofType:modelConfiguration:storeOptions:). You might wish to do this, for example, to specify a particular managed object model.

Überschreiben func configurePersistentStoreCoordinator(for url: URL, ofType fileType: String, modelConfiguration configuration: String?, storeOptions: [String : AnyObject]? = [:]). Fügen Sie Ihre Optionen zu storeOptions hinzu und rufen Sie super an.

0

siehe apple docs

in Swift Optionen erstellen und rufen addPersistentStoreWithType

let options = [NSMigratePersistentStoresAutomaticallyOption:true,NSInferMappingModelAutomaticallyOption:true] 
try coordinator.addPersistentStoreWithType(NSSQLiteStoreType, configuration: nil, URL: url, options: options) 

dies in lazy var persistentStoreCoordinator: NSPersistentStoreCoordinator in appDelegate:(didFinishLaunchingWithOptions)

bearbeiten getan wird, sagt: Dies ist für iOS nur apps, Für dokumentenbasierte Apps finden Sie Ihre Antwort here

+0

Woher haben Sie die Variable 'coodinator'? – Flovdis

+0

Werfen Sie einen Blick auf die Core Data Template App, es ist alles da;) 'Lassen Sie Koordinator = NSPersistentStoreCoordinator (ManagedObjectModel: Self.ManagedObjectModel)' – Michael

+1

Die Frage ist über die "Core Data ** Dokument basierte ** Vorlage" – Willeke