在我的应用程序中,我将 Core Data 与一个不使用 Core Data 的附加 sqlite 数据库一起使用。在这个额外的数据库中,我有NSManagedObject
通过每个实例的NSManagedObjectID
.
我得到一个实例objectId
作为存储的字符串,如下所示:
instance.objectID.URIRepresentation.absoluteString
这导致字符串看起来像:
x-coredata://EE13EA1E-D5F4-4E38-986D-3F4B0B03AEE4/ClassName/p658
我以后可以使用它来获取这样的NSManagedObject
实例:
[persistentStoreCoordinator managedObjectIDForURIRepresentation:[NSURL URLWithString:uriString]];
由于这些 URI 字符串很冗长并且包含冗余信息,我想只保存每个字符串的独特方面,以节省数据库中的空间并提高查询性能。所以在上面的例子中,只是 '658' 而不是整个 URI 字符串。
所以第一个问题是:什么是提取唯一尾部的好方法NSManagedObjectID
?其次,一旦我存储了它,我以后如何使用它来获取实例?
我想避免字符串操作,因为这感觉很恶心,但如果这是唯一的方法,我会考虑它。我唯一的困惑是上面示例中的“EE13EA1E-D5F4-4E38-986D-3F4B0B03AEE4”部分来自哪里。我如何访问该值以重建有效的 URI?