2017-02-22 57 views
0

我在覈心數據中存儲了字母(字符串),數字(Int16)和日期(日期)。 而過濾器(NSPredicate)成功地只組織了必要的數據。如何總結存儲的核心數據的數字(Int16) - Swift 3

我想要得到這個核心數據中數字的總和。

  • 實體名稱:實體
  • 屬性名稱:信(字符串),價值(Int16類型),日期(日期)

let context = (UIApplication.shared.delegate as! AppDelegate).managedObjectContext 

let entityDesc: NSEntityDescription = NSEntityDescription.entity(forEntityName: "Entity", in: context)! 

let request: NSFetchRequest<NSFetchRequestResult> = NSFetchRequest() 

request.entity = entityDesc 

// Omit date NSFormatter 

let dateCheck = formatter.string(from: today) 

request.predicate = NSPredicate(format: "Date == %@", dateCheck) 

let records = try! context.fetch(request) 

我不知道下一步該怎麼做。 我是一名初學者,希望有人能幫忙。

+1

http://stackoverflow.com/questions/28010110/how-do-i-use-an-sql-group-by-and-sum-functions-in-a-ios-core-data- request-in-swi –

+0

嘗試像這樣'let records = try! context.fetch(request)as! [NSManagedObject]; let sum = result.reduce(0){$ 0 +($ 1.value(forKey:「Value」)as?Int16 ?? 0)}' –

+0

@SachinVas我試過了......但作爲初學者很難做到再次。很好的參考。謝謝。 –

回答

1

您已經獲取記錄,因此以這種方式得到Value屬性的總和。

try! context.fetch(request) as! [NSManagedObject] 
let sum = result.reduce(0) { $0 + ($1.value(forKey: "Value") as? Int16 ?? 0) } 
print(sum) 
+0

感謝您的幫助,您的工作已經很快得到解決。謝謝。 –

+0

@IdenLim歡迎伴侶:) –