Quindi il mio problema era che non avevo idea di dove questo persistente codice del coordinatore del negozio vada. Si scopre che viene automaticamente creato nell'implementazione AppDelegate
quando si seleziona "Utilizza dati principali" durante la creazione del progetto.
Così, dal secondo link here, tutto quello che dovete fare per una migrazione leggero (l'aggiunta di nuovi attributi e simili) è il seguente:
- Selezionare la .xcdatamodeld
- Dal menu , scegli Editor -> Aggiungi modello Versione
- Assegna alla nuova versione qualsiasi cosa desideri, seleziona la versione precedente in "Basato sul modello"
- In File Inspector di .xcdatamodeld, scegli Model Version -> Current -> il tuo nuovo modello versione
- Selezionare la nuova versione del modello all'interno di .xcdatamodeld in Project Navigator ed effettuare le modifiche al modello
- Se sono stati modificati i nomi degli attributi o tipi, creare un modello di mappatura, nuovo file -> Dati di base -> Modello di mappatura -> raccogliere le versioni di origine e di destinazione modello
- Aggiornare la mappatura nel nuovo modello di mappatura
Cambia la tua AppDelegate archivio permanente codice coordinatore come segue.
lazy var persistentStoreCoordinator: NSPersistentStoreCoordinator? = {
var coordinator: NSPersistentStoreCoordinator? = NSPersistentStoreCoordinator(managedObjectModel: self.managedObjectModel)
let url = self.applicationDocumentsDirectory.URLByAppendingPathComponent("<data model name>.sqlite")
var error: NSError? = nil
var failureReason = "There was an error creating or loading the application's saved data."
let options = [
NSMigratePersistentStoresAutomaticallyOption: true,
NSInferMappingModelAutomaticallyOption: true]
if coordinator!.addPersistentStoreWithType(NSSQLiteStoreType, configuration: nil, URL: url, options: options, error: &error) == nil {
coordinator = nil
// Report any error we got.
var dict = [String: AnyObject]()
dict[NSLocalizedDescriptionKey] = "Failed to initialize the application's saved data"
dict[NSLocalizedFailureReasonErrorKey] = failureReason
dict[NSUnderlyingErrorKey] = error
error = NSError(domain: "YOUR_ERROR_DOMAIN", code: 9999, userInfo: dict)
// Replace this with code to handle the error appropriately.
// abort() causes the application to generate a crash log and terminate. You should not use this function in a shipping application, although it may be useful during development.
NSLog("Unresolved error \(error), \(error!.userInfo)")
abort()
}
return coordinator
}()
Quindi si aggiunge solo opzioni di migrazione alla chiamata addPersistentStoreWithType
.
Ha aiutato grazie! –
Si prega di evitare di rispondere con gli URL, o almeno di incollare gli evidenziatori che rispondono alla domanda. Non puoi garantire che un link esterno sarà sempre lì ... – dooleyo
E, infatti, il primo link è morto - Bad Gateway. – rattletrap99