2014-11-07 5 views
10

Pracuję nad aplikacją w Swift i zacząłem ostatnio używać Core Data. Muszę zdefiniować, który atrybut mojej jednostki będzie moim kluczem podstawowym. Na przykład:iOS - Klucz podstawowy zestawu danych atrybut klucz

Mam podmiot, który posiada atrybuty klasy:

  • id
  • nazwa
  • wiekowej

muszę "ID" atrybut jest moim podstawowym klawisz.

Może być taki sam w Objective-C, po prostu trzeba wiedzieć, jak to zdefiniować.

Odpowiedz

16

Każdy NSManagedObject ma swój niepowtarzalny klucz wbudowany w których jest dostępna w objectID nieruchomości.

Ten identyfikator służy wewnętrznie do łączenia podmiotów przez swoje powiązania. Nie ma potrzeby utrzymywania własnego identyfikatora jako klucza podstawowego, tak jak w przypadku SQL.

Zawsze możesz uzyskać identyfikator przez NSManagedObject.objectID.

Pobieranie obiektu poprzez jego id mogą być wykonywane bezpośrednio przez zarządzanego kontekstu obiektu przy NSMananagedObjectContext.objectWithId(...)

+0

co w szybkich ?? Nie widzę właściwości o nazwie: objectID – user3804063

2

Dlaczego identyfikator ma być kluczem podstawowym, nie jest to SQL i nie ma klucza podstawowego (nawet jeśli za danymi podstawowymi jest to SQL, w którym nie używa się SQL i klucza podstawowego). Zmień nazwę swojego identyfikatora atrybutu w identyfikatorze użytkownika lub identyfikatorze entityId. Gdy chcesz uzyskać podmiot z identyfikatorem użyć NSPredicate:

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