Estoy tratando de archivar/desarchivar NSManagedObjectIDs en objetos de Core Data para que la próxima vez que inicie mi aplicación pueda recuperar estos ID y usarlos para buscar objetos específicos.¿Cuál es la forma correcta de almacenar un NSURL en Core Data?
me trataron "archivar" el ID de la siguiente manera:
//defaultConfiguration is an NSManagedObject defined elsewhere and it works just fine...
// and newObject is also properly initialized, bound to a context,etc...
ArchivedID* newID = [NSEntityDescription insertNewObjectForEntityForName:@"ArchivedID" inManagedObjectContext:managedObjectContext];
[self.defaultConfiguration addArchiveIDObject:newID];
newID.idURI = [[newObject objectID] URIRepresentation];
[managedObjectContext save:&error];
Y luego desarchivándolos como esta (que sólo voy a [anyObject] Porque yo estoy probando y no hay una sola en este punto):
NSManagedObjectID* ID = [managedObjectContext.persistentStoreCoordinator managedObjectIDForURIRepresentation:[defaultConfiguration.archiveID anyObject]];
Pero cuando trato de conseguir la URL espalda como antes, me sale el siguiente excepción:
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[ArchivedID relativeString]: unrecognized selector sent to instance 0x7f59f20'
El atributo en la entidad se configuró a través de Xcode como "transformable" y dejé el campo de valor del transformador en Xcode vacío ya que la documentación de Core Data parece implicar que si está vacía, use el transformador predeterminado.
¿Qué estoy haciendo mal?
¿Qué tiene esto que ver con nsurl? – Chet