IOS - первичный ключ атрибута основного набора данных
Я разрабатываю приложение в Swift и недавно начал использовать Core Data.
Я должен определить, какой атрибут для моего объекта будет моим основным ключом. Например:
У меня есть объект, который имеет атрибуты класса:
Мне нужен атрибут "id" - это мой первичный ключ.
Может быть одинаковым в Objective-C, просто нужно знать, как его определить.
Ответы
Ответ 1
Каждый NSManagedObject
имеет свой собственный уникальный ключ, встроенный в который доступен в свойстве objectID
.
Этот идентификатор внутренне используется для связывания объектов над его отношениями. Нет необходимости поддерживать собственный идентификатор в качестве первичного ключа, как вы привыкли делать в SQL.
Вы всегда можете получить идентификатор NSManagedObject.objectID
.
Получение объекта по его идентификатору может выполняться непосредственно контекстом управляемого объекта с помощью NSMananagedObjectContext.objectWithId(...)
Ответ 2
Зачем вам нужен идентификатор, чтобы быть вашим основным ключом, это не SQL, и нет первичного ключа (даже если за базовыми данными это SQL, вы не используете SQL и первичный ключ). Переименуйте свой идентификатор атрибута в userId или entityId. Если вы хотите, чтобы ваша сущность с вашим идентификатором использовала NSPredicate:
[NSPredicate predicateWithFormat:@"(entityId == %d)", entityId]