іноді при злому потрібен фактичний int первинного ключа. ось як його можна схопити:
NSManagedObjectID *yourManagedObjectID = [yourManagedObject objectID];
int yourManagedObject_PK = [[[[[yourManagedObjectID URIRepresentation] absoluteString] lastPathComponent] substringFromIndex:1] intValue];
незважаючи на те, що CoreData є графіком об'єктів, якщо поглянути на дані, створені CoreData, що містять базу даних SQLite, такий спосіб захоплення первинного ключа NSManagedObject не повинен становити проблему. ii використовували CoreData та низькорівневу бібліотеку sqlite3 C разом в одному коді, і передача первинних ключів від CoreData до sqlite3 для отримання записів працює чудово.
! якщо ви маєте намір використовувати цей код у виробництві, знайте про можливі внутрішні зміни в способі перетворення первинного ключа db на презентацію URIRe, це може гальмувати ваш код.
насолоджуватися