2016-10-17 5 views
0

Ich habe zwei Einheiten "CAR" und "COLOR".CoreData Swift 3 - Wie zwei Entitäten verbinden?

In "COLOR" Ich habe zwei Attribute.

  1. id
  2. Name

In "CAR" Ich habe drei Attribute.

  1. ID
  2. colourId
  3. carName

ID von "Farbe", um colourId bezogen auf "AUTO".

Bitte jemand mir helfen zur Erzeugung Reihe von Autos unter einer Farbe ein Prädikat zu schreiben?

+2

Sie müssen die 'relationship' zwischen' COLOUR' und 'CAR' erstellen. Fügen Sie nicht nur die 'colourID' hinzu. Ansonsten benötigst du zuerst zwei Abfragen, um die COLOR-ID von "COLOUR" zu erhalten und dann die 'CAR's von der COLOR-ID zu erhalten. –

Antwort

6

Tun Sie dies nicht tun. Fremdschlüssel verwenden Sie in einer Datenbank. CoreData ist keine Datenbank.

im Datenmodell erstellen eine Beziehung im Auto „Farbe“ und legen Sie seine Art zu color.

Dann in der Farbe erstellen Sie eine "viele" Beziehung namens cars und legen Sie ihren Typ auf car.

Jetzt haben Sie eine Eigenschaft in Car namens color, die das Farbobjekt enthalten wird.

Und eine Eigenschaft in Color genannt cars, die ein Satz aller Cars sein wird, die diese Farbe haben.

+0

Ok Fertig, Wie schreibe ich ein Fetch-Prädikat für die Beziehungen? –

+0

@DevidasMDas müssen Sie nicht. Einfach das 'Auto' holen und dann die Farbe benutzen ...' car.color'. Oder wenn Sie alle Autos für eine bestimmte Farbe bekommen wollen, dann nehmen Sie die 'Farbe' und verwenden Sie' color.cars'. Es besteht keine Notwendigkeit, ** irgendetwas ** beizutreten. Verwenden Sie einfach die Beziehungseigenschaft. – Fogmeister

+0

@DevidasMDas Sie könnten einen holen erstellen Prädikat für 'Car' wie diese auch ...' color.id == 1 'zum Beispiel. Dies wird dann alle Autos holen, wo die 'color' Eigenschaft eine 'id'-Eigenschaft von 1 hat. Oder' color.name == "blue" 'und dies wird dasselbe tun. – Fogmeister