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