【发布时间】:2012-05-01 03:06:09
【问题描述】:
我正在尝试归档/取消归档 Core Data 对象中的 NSManagedObjectID,以便下次我的应用启动时,我可以检索这些 ID 并使用它们来获取特定对象。
我尝试像这样“归档”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 中的转换器值字段留空,因为核心数据文档似乎暗示如果为空则使用默认转换器。
我做错了什么?
【问题讨论】:
-
这和nsurl有什么关系?
标签: ios cocoa core-data foundation nsvaluetransformer