2017-02-22 22 views
0

Я сохранил буквы (String), цифры (Int16) и Date (Date) в основных данных. И фильтру (NSPredicate) удалось организовать только необходимые данные.Как суммировать числа (Int16) сохраненных данных ядра - Swift 3

Я хочу получить общую сумму чисел в этих основных данных.

  • Наименование организации: Entity
  • Имя атрибута: Letter (String), значение (Int16), 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) 

Я не знайте, что делать дальше. Я новичок в развитии и надеюсь, что кто-то может помочь.

+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 (запрос) как! [NSManagedObject]; пусть sum = result.reduce (0) {$ 0 + ($ 1.value (forKey: «Value») как? 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 Добро пожаловать! –

Смежные вопросы