我的核心數據應用程序中有兩個實體。父母是客戶,子對象是具有項目購買細節的訂單。現在我要展示我的父視圖控制器上是這樣顯示父對象時總結子對象 - 核心數據
客戶名稱「項的總和」:獅子座 訂單總額:£90
我是新來的核心數據模式,所以請負我。您基於一個實體創建您的獲取請求。我的父視圖控制器的fetchResultController正在爲客戶提取結果。我怎樣才能同時獲得客戶訂單?
感謝
我的核心數據應用程序中有兩個實體。父母是客戶,子對象是具有項目購買細節的訂單。現在我要展示我的父視圖控制器上是這樣顯示父對象時總結子對象 - 核心數據
客戶名稱「項的總和」:獅子座 訂單總額:£90
我是新來的核心數據模式,所以請負我。您基於一個實體創建您的獲取請求。我的父視圖控制器的fetchResultController正在爲客戶提取結果。我怎樣才能同時獲得客戶訂單?
感謝
首先,你不要以爲實體父子/樹結構是的,除非你的對象圖積極強制這樣的結構。在大多數情況下,它不會和任何兩個實體在結構上相等。您的「客戶」和「訂單」實體似乎就是這種情況。
這是一個需要掌握的重要概念,因爲與傳統的樹結構不同,在覈心數據數據圖中,您可以在任何實體的任何實例中輸入圖形,並沿任意方向走向關係,例如您不必始終獲取對象來啓動,您可以根據需要輕鬆獲取對象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"];
關係是核心數據非常重要。
感謝您的回答。我今晚會在家裏放一下。 – Leo 2011-05-27 14:13:11
可能的重複http://stackoverflow.com/questions/5145738/core-data-sum-in-relationship – falconcreek 2011-05-26 21:16:46
它不是重複的。 – TechZen 2011-05-26 23:56:12