Ich versuche, NSManagedObjectIDs in Core Data-Objekten zu archivieren/entpacken, damit beim nächsten Start meiner App diese IDs abgerufen und zum Abrufen bestimmter Objekte verwendet werden können.Was ist der richtige Weg, um eine NSURL in Core Data zu speichern?
Ich habe versucht, „Archivierung“ die ID wie folgt aus:
//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];
Und dann so dearchiviert (Ich werde nur für [ANYOBJECT] Ursache Ich teste und es gibt nur einen an dieser Stelle):
NSManagedObjectID* ID = [managedObjectContext.persistentStoreCoordinator managedObjectIDForURIRepresentation:[defaultConfiguration.archiveID anyObject]];
Aber wenn ich versuche, die URL immer wie oben zurück, erhalte ich die folgende Ausnahme:
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[ArchivedID relativeString]: unrecognized selector sent to instance 0x7f59f20'
Das Attribut in der Entity wurde über Xcode auf "transformable" gesetzt und ich habe das Transformer-Wert-Feld in Xcode leer gelassen, da die Core Data-Dokumentation zu implizieren scheint, wenn sie leer ist, verwende sie den Standard-Transformer.
Was mache ich falsch?
was hat das mit nsurl zu tun? – Chet