Manchmal benötigt man beim Hacken das tatsächliche int des Primärschlüssels. Hier ist, wie man es greifen kann:
NSManagedObjectID *yourManagedObjectID = [yourManagedObject objectID];
int yourManagedObject_PK = [[[[[yourManagedObjectID URIRepresentation] absoluteString] lastPathComponent] substringFromIndex:1] intValue];
Obwohl CoreData ein Objektdiagramm ist, sollte diese Art des Abrufs des Primärschlüssels eines NSManagedObject kein Problem sein, wenn man sich die von CoreData generierten SQLite-Datenbankdaten ansieht. Ich habe CoreData und die sqlite3 C-Bibliothek auf niedriger Ebene zusammen im selben Code verwendet und die Übergabe von Primärschlüsseln von CoreData an sqlite3 zum Abrufen von Datensätzen funktioniert einwandfrei.
! Wenn Sie diesen Code in der Produktion verwenden möchten, beachten Sie mögliche interne Änderungen an der Art und Weise, wie der DB-Primärschlüssel in eine URIR-Darstellung umgewandelt wird. Dies kann Ihren Code beschädigen.
genießen