2014-11-07 3 views
10

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

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

  • идентификатор
  • имя
  • возрастного

мне нужно «идентификатор» атрибут мой основной ключ.

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

ответ

16

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

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

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

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

+0

что насчет Свифт ?? Я не вижу свойства с именем: objectID – user3804063

2

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

[NSPredicate predicateWithFormat:@"(entityId == %d)", entityId] 
Смежные вопросы