IOS - первичный ключ атрибута основного набора данных

Я разрабатываю приложение в Swift и недавно начал использовать Core Data. Я должен определить, какой атрибут для моего объекта будет моим основным ключом. Например:

У меня есть объект, который имеет атрибуты класса:

  • ID
  • имя
  • возраст

Мне нужен атрибут "id" - это мой первичный ключ.

Может быть одинаковым в Objective-C, просто нужно знать, как его определить.

Ответ 1

Каждый NSManagedObject имеет свой собственный уникальный ключ, встроенный в который доступен в свойстве objectID.

Этот идентификатор внутренне используется для связывания объектов над его отношениями. Нет необходимости поддерживать собственный идентификатор в качестве первичного ключа, как вы привыкли делать в SQL.

Вы всегда можете получить идентификатор NSManagedObject.objectID.

Получение объекта по его идентификатору может выполняться непосредственно контекстом управляемого объекта с помощью NSMananagedObjectContext.objectWithId(...)

Ответ 2

Зачем вам нужен идентификатор, чтобы быть вашим основным ключом, это не SQL, и нет первичного ключа (даже если за базовыми данными это SQL, вы не используете SQL и первичный ключ). Переименуйте свой идентификатор атрибута в userId или entityId. Если вы хотите, чтобы ваша сущность с вашим идентификатором использовала NSPredicate:

 [NSPredicate predicateWithFormat:@"(entityId == %d)", entityId]