2011-05-26 48 views
1

我的核心數據應用程序中有兩個實體。父母是客戶,子對象是具有項目購買細節的訂單。現在我要展示我的父視圖控制器上是這樣顯示父對象時總結子對象 - 核心數據

客戶名稱「項的總和」:獅子座 訂單總額:£90

我是新來的核心數據模式,所以請負我。您基於一個實體創建您的獲取請求。我的父視圖控制器的fetchResultController正在爲客戶提取結果。我怎樣才能同時獲得客戶訂單?

感謝

+0

可能的重複http://stackoverflow.com/questions/5145738/core-data-sum-in-relationship – falconcreek 2011-05-26 21:16:46

+0

它不是重複的。 – TechZen 2011-05-26 23:56:12

回答

1

首先,你不要以爲實體父子/樹結構是的,除非你的對象圖積極強制這樣的結構。在大多數情況下,它不會和任何兩個實體在結構上相等。您的「客戶」和「訂單」實體似乎就是這種情況。

這是一個需要掌握的重要概念,因爲與傳統的樹結構不同,在覈心數據數據圖中,您可以在任何實體的任何實例中輸入圖形,並沿任意方向走向關係,例如您不必始終獲取對象來啓動,您可以根據需要輕鬆獲取對象Order

在這種特殊情況下,您正在提取Customer對象,並且您想查找所有關聯的Order對象。您的數據模型應該是這個樣子:

Customer{ 
    name:string 
    orders<-->>Order.customer 
} 

Order{ 
    item:string 
    cost:number 
    customer<<-(required)->Customer.orders 
} 

現在,每次創建一個新的Order對象,你會自動將其鏈接此時,相應的客戶對象。當您獲取任何特定的對象時,所有與Order對象有關的對象都可用於Customer.orders關係中。

如果你想總結客戶的所有訂單的成本,你可以使用一個集運營商,像這樣:

NSNumber *orderSum=[Customer.order valueForKeyPath:@"@sum.orders.cost"]; 

關係是核心數據非常重要。

+0

感謝您的回答。我今晚會在家裏放一下。 – Leo 2011-05-27 14:13:11