2016-10-17 43 views
0

我有兩個實體「CAR」和「COLOR」。CoreData Swift 3 - 如何加入兩個實體?

在「顏色」我有兩個屬性。

  1. ID

在 「CAR」 我有三個屬性。

  1. ID
  2. colourId
  3. carName

「COLOR」 中的 「車」 有關colourId的ID。

請大家幫我寫一個謂詞來生成一種顏色的汽車陣列嗎?

+2

您需要在'COLOUR'和'CAR'之間建立'關係'。不要只添加'colourID'。否則,您需要先查詢兩個查詢才能從給定的COLOUR中獲取COLOR-ID,然後從COLOR-ID中獲取CAR。 –

回答

6

不要這樣做。使用外鍵是您在數據庫中執行的操作。 CoreData不是數據庫。

在數據模型中,在汽車中創建一個名爲「color」的關係,並將其類型設置爲color

然後在顏色中創建一個稱爲cars的「多」關係並將其類型設置爲car

現在你有一個財產Carcolor將包含顏色對象。

Color中的一個屬性叫做cars,它將成爲具有該顏色的所有Cars的集合。

+0

Ok完成,我將如何編寫一個獲取關係的獲取謂詞? –

+0

@DevidasMDas你不需要。只需取出「汽車」,然後使用顏色......「car.color」。或者,如果你想讓所有的汽車獲得特定的顏色,就可以使用'color'並使用'color.cars'。沒有必要**加入**任何東西。只需使用關係屬性。 – Fogmeister

+0

@DevidasMDas你可以爲'Car'創建一個fetch謂詞,例如''color.id == 1'。然後這將獲取'color'屬性具有'id'屬性爲1的所有汽車。或者'color.name =='blue'',這樣做也是一樣。 – Fogmeister