我想在核心数据对象中存档/取消存档NSManagedObjectIDs,这样下次我的应用程序启动时,我可以检索这些ID并使用它们来获取特定的对象。在核心数据中存储NSURL的正确方法是什么?
我尝试“存档”的ID是这样的:
//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];
然后解除存档这样的(我只是去[anyObject]因为我是测试在这一点上,只有一个):
NSManagedObjectID* ID = [managedObjectContext.persistentStoreCoordinator managedObjectIDForURIRepresentation:[defaultConfiguration.archiveID anyObject]];
但是当我尝试获取URL后面像上面,我得到以下异常:
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[ArchivedID relativeString]: unrecognized selector sent to instance 0x7f59f20'
实体中的属性通过Xcode设置为“可转换”,并且我将Xcode中的变换器值字段留空,因为Core Data文档似乎暗示它是否为空使用默认转换器。
我在做什么错?
这与nsurl有什么关系? – Chet 2014-03-23 04:59:55