如何对存储的核心数据的数字(Int16)求和 - Swift 3

时间:2017-02-22 04:51:04

标签: swift core-data sum int

我在核心数据中存储了字母(String),数字(Int16)和日期(Date)。 过滤器(NSPredicate)成功地只组织了必要的数据。

我想获得此核心数据中数字的总和。

  • 实体名称:实体
  • 属性名称:字母(字符串),值(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 个答案:

答案 0 :(得分:1)

您已经获取了记录,因此请以这种方式获取Value属性的总和。

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