2012-02-18 26 views
0

現在總共的新手問題......只要說一句,我已經搜索了一個完全無效的解釋,但沒有發現任何「愚蠢的」足夠的東西。問題是...如何在覈心數據中創建和獲取關係記錄

我創建了一個核心數據堆棧,其中有一個名爲'Client'的實體和一個名爲'Car'的實體。這是一對多的關係。

到目前爲止,我已經使用蘋果教程中的代碼成功創建並提取了客戶端列表。一旦我選擇了一個客戶端,然後我推送一個新的tableViewController,它應該列出所選客戶端的汽車。

第一個問題......

我習慣了SQL風格的數據庫編程那裏,如果我想有車添加到客戶端,我會一個「客戶端ID」標籤簡單地添加到「汽車」的記錄,從而提供與特定客戶的關係。我如何做核心數據的等價物?根據我的理解,我的理解是添加指向其他實體的屬性不是必需的 - 核心數據爲您保留這種關係,而不需要實體中的其他屬性。

第二個問題...

正如當我創建了一個「車」的實體,它成功地連接到一個「客戶」。如何創建一個只讀取客戶汽車的抓取。我可以改變蘋果的代碼來獲取所有車輛,但我不知道如何獲取與給定客戶關聯的汽車。從我的閱讀中,我認爲我需要使用謂詞,但蘋果謂詞文檔是獨立的,並沒有給出如何使用核心數據的明確指導

我意識到這是多麼糟糕,但我無法找到一個白癡指南任何地方...

任何幫助/代碼例如非常讚賞。

回答

1

好的,我已經回答了我自己的問題。對於那些已經找到我的問題並希望知道答案的人來說,它非常簡單...

首先,創建一個'Car'並將其與'Client'相關聯。首先創建一個「汽車」,你通常會和只需添加這行代碼...

newCar.client = client; 

這將設置在「汽車」記錄有問題的客戶端的「客戶」的關係。第二,我曾想過,如果你有一個客戶,需要找到他們的汽車,那麼你需要一個新的取件。但不是這樣!只需使用下面的代碼行...

NSSet *cars = client.cars; 
[self setCarsArray:[cars allObjects]]; 

第一行使用「client.cars」○效仿的對象圖,以確定該客戶端具有汽車和填充他們的NSSet中。第二行然後填充一個在當前viewcontroller中聲明的NSArray,它可以用於顯示目的。

Sorted !!