Sto tentando di archiviare/annullare l'archiviazione di NSManagedObjectIDs negli oggetti di dati di base in modo che la prossima volta che la mia app si avvia posso recuperare questi ID e usarli per recuperare oggetti specifici.qual è il modo corretto per archiviare un NSURL in Core Data?
ho provato "archiviazione", l'ID in questo modo:
//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];
E poi unarchiving come questo (sto solo andando per [ANYOBJECT] Perché io sto testando e c'è un solo a questo punto):
NSManagedObjectID* ID = [managedObjectContext.persistentStoreCoordinator managedObjectIDForURIRepresentation:[defaultConfiguration.archiveID anyObject]];
Ma quando provo ottenere l'URL schiena come sopra, ottengo la seguente eccezione:
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[ArchivedID relativeString]: unrecognized selector sent to instance 0x7f59f20'
L'attributo nell'entità è stato impostato tramite Xcode su "trasformabile" e ho lasciato il campo del valore del trasformatore in Xcode vuoto poiché la documentazione di Core Data sembra implicare se vuoto utilizza il trasformatore predefinito.
Cosa sto sbagliando?
cosa ha a che fare questo con nsurl? – Chet