Вы можете реализовать интерфейсы с ключевым словом Implements
.
Возможные варианты:
- [NSManagedObject objectID]
. Обратите внимание, что этот идентификатор является временным, пока объект не будет сохранен в первый раз или вы не вызовете - [NSManagedObjectContext receivePermanentIDsForObjects: error:]
CFUUID
для создания UUID для каждый объект в вашем методе -awakeFromInsert
Нет хорошего способа проверки что свойство уникально. Самое близкое, что вы получите, - это убедиться, что он уникален во время создания, а затем реализовать собственный метод установки, который не позволит никому изменить идентификатор.
Имейте в виду, что Core Data - это структура постоянства объектного графа, а не база данных. Такие вещи, как первичные ключи, абстрагируются, потому что они зависят от реализации постоянного хранилища.
Core Data создает свой собственный первичный ключ - вам не нужно его добавлять. Вы можете получить его с помощью
NSManagedObjectID *moID = [managedObject objectID];