verificando ts1275 support software restaurarse restaurar restauracion queda puedo producido podido intento error desconocido con apple actualizar ios swift core-data

ios - ts1275 - se ha producido un error desconocido 4013



No se pudo crear la política de mapeo-Datos principales de iOS (2)

He estado tratando de usar una política de migración personalizada en una aplicación que estoy armando. Hasta ahora, las migraciones han funcionado desde v1 -> v2 al usar un modelo de mapeo. Sin embargo, siempre que agrego una política personalizada a un mapeo de entidades, la migración se niega a trabajar para v2 -> v3.

Política de migración personalizada:

import Foundation import CoreData class ObjectCustomV2V3Migration: NSEntityMigrationPolicy { override func createDestinationInstancesForSourceInstance(sInstance: NSManagedObject, entityMapping mapping: NSEntityMapping, manager: NSMigrationManager, error: NSErrorPointer) -> Bool { var newObject:NSManagedObject? = NSEntityDescription.insertNewObjectForEntityForName(mapping.destinationEntityName!, inManagedObjectContext: manager.destinationContext) as? NSManagedObject // Sets attr31 - string attribute var str:String = sInstance.valueForKey("attr21") as String if str == "" { str = "BlanketyBlank" } newObject?.setValue(str, forKey: "attr31") // Sets attr32 (int16 attribute) as double of value in previous version // ignore the dodgy type casting. var num:Int = sInstance.valueForKey("attr22") as Int num *= 2 var num16 = NSNumber(integer: num) newObject?.setValue(num16, forKey: "attr32") if newObject != nil { manager.associateSourceInstance(sInstance, withDestinationInstance: newObject!, forEntityMapping: mapping) return true } return false } }

y cuando ejecuto la aplicación, se devuelve el siguiente error:

2015-07-10 14:32:42.952 SingleDBMigration[2153:739674] CoreData: error: -addPersistentStoreWithType:SQLite configuration:(null) URL:file:///var/mobile/Containers/Data/Application/6C142EC2-02DB-4BD6-8428-5739C57C7795/Documents/SingleDBMigration.sqlite options:{ NSInferMappingModelAutomaticallyOption = 0; NSMigratePersistentStoresAutomaticallyOption = 1; } ... returned error Error Domain=NSCocoaErrorDomain Code=134110 "The operation couldn’t be completed. (Cocoa error 134110.)" UserInfo=0x17ecad70 {NSUnderlyingException=Couldn''t create mapping policy for class named (ObjectCustomV2V3Migration)} with userInfo dictionary { NSUnderlyingException = "Couldn''t create mapping policy for class named (ObjectCustomV2V3Migration)"; } 2015-07-10 14:32:42.965 SingleDBMigration[2153:739674] Unresolved error Optional(Error Domain=YOUR_ERROR_DOMAIN Code=9999 "Failed to initialize the application''s saved data" UserInfo=0x17eaf880 {NSLocalizedDescription=Failed to initialize the application''s saved data, NSUnderlyingError=0x17ecad90 "The operation couldn’t be completed. (Cocoa error 134110.)", NSLocalizedFailureReason=There was an error creating or loading the application''s saved data.}), Optional([NSLocalizedDescription: Failed to initialize the application''s saved data, NSUnderlyingError: Error Domain=NSCocoaErrorDomain Code=134110 "The operation couldn’t be completed. (Cocoa error 134110.)" UserInfo=0x17ecad70 {NSUnderlyingException=Couldn''t create mapping policy for class named (ObjectCustomV2V3Migration)}, NSLocalizedFailureReason: There was an error creating or loading the application''s saved data.])

siendo la parte importante:

NSUnderlyingException=Couldn''t create mapping policy for class named (ObjectCustomV2V3Migration)

He intentado las pocas preguntas que he encontrado sobre este problema, y ​​ninguna de ellas ha proporcionado ninguna solución satisfactoria. ¡Estaría muy agradecido si alguien pudiera arrojar alguna luz sobre el problema que estoy enfrentando!

¡Gracias!


Eventualmente resolví esto, después de entender una respuesta a una pregunta similar. Me había olvidado de agregar el espacio de nombres del proyecto, así que en lugar de establecer el nombre de la política personalizada como ObjectCustomV2V3Migration en el Modelo de asignación, debería haber usado ProjectModuleName.ObjectCustomV2V3Migration .


Mi problema era que el nombre de mi proyecto tenía espacios, por lo que en el editor del modelo de mapeo, la política personalizada debe especificarse con guiones bajos en lugar de espacios al especificar el nombre del módulo Swift.

Por ejemplo, para especificar la clase MyCustomMigrationPolicy en el proyecto llamado My App Name , usé la siguiente política personalizada en el editor:

My_App_Name.MyCustomMigrationPolicy