2015-11-04 75 views
0

我已經從CoreData返回了一個Customer對象。我試圖計算存在於NSSet中所有amount屬性的總和:通過每個記錄NSSet中屬性的總和

extension Customer { 
    //... 
    @NSManaged var customer_Invoices: NSSet? 
} 

extension Invoice { 
    //... 
    @NSManaged var amount: NSDecimalNumber? 
    @NSManaged var invoice_Customer: Sale? 
} 

我能循環,並添加他們,但我認爲有一個更好的辦法?

這樣做的最好方法是什麼?在C#中,我通常只使用簡單的linq查詢,在Swift中是否存在類似的東西?

+0

查看[Key-Value coding collection operators](https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/KeyValueCoding/Articles/CollectionOperators.htm)。就像'customer_Invoices.valueForKeyPath(「@ sum.amount」)'... –

回答

1

我只是循環。其他人閱讀和理解你在做什麼會更容易。並且更容易調試,如果您需要的話。而且這可能是最快的(關於你做得足夠重要的機會)。

如果你真的要聰明一點,你可以這樣做:

total = customer.valueForKeyPath("@sum.amount") 

Key Value Coding/Collection Operators。它不像LINQ那樣功能全面,功能強大,所以你會發現它是一個糟糕的替代品。如果您決定使用它,請閱讀整本指南,因爲您可能無法預期有關KVC的特殊情況。

+0

謝謝。我會錯過LINQ :( – Joseph

+0

你和我都。 –