Search code examples
swiftcore-datasumint

How to sum the numbers(Int16) of stored core data - Swift 3


I have stored the letters(String), numbers(Int16) and Date(Date) in the core data. And the filter(NSPredicate) succeeded in organizing only the necessary data.

I want to get the total sum of the numbers in this core data.

  • Entity Name : Entity
  • Attribute Name : Letter(String), Value(Int16), Date(Date)

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)

I do not know what to do next. I am a beginner in development and hope someone can help.


Solution

  • You have already fetch the records, so get the sum of the Value attribute this way.

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