a veces, al piratear, se necesita el int real de la clave principal. así es como uno puede agarrarlo:
NSManagedObjectID *yourManagedObjectID = [yourManagedObject objectID];
int yourManagedObject_PK = [[[[[yourManagedObjectID URIRepresentation] absoluteString] lastPathComponent] substringFromIndex:1] intValue];
a pesar de que CoreData es un gráfico de objetos, si uno mira los datos de la base de datos SQLite generados por CoreData, esta forma de obtener la clave principal de un NSManagedObject no debería ser un problema. He usado CoreData y la biblioteca C sqlite3 de bajo nivel juntas en el mismo código y pasar las claves primarias de CoreData a sqlite3 para obtener registros funciona bien.
! Si tiene la intención de usar este código en producción, tenga en cuenta los posibles cambios internos en la forma en que la clave principal de db se transforma en una representación URIR, podría frenar su código.
disfrutar