Здравствуйте. Вот недавно начал изучение Core Data. Пытаюсь играться с приложением на подобие ToDoIst. Хочу реализовать функцию нахождения суммы чисел что записаные в атрибуте сущности. Просто не могу найти информацию об этом. Пробовал делать через reduce массива но не получается сложить все числа вместе просто выводит по отдельности. Может кто подскажет в какую сторону копать? Также нашел на зарубежном сайте пример где сделано с помощью FetchRequest но пример был для swift 3 и не работал у меня поэтому не смог понять что к чему. Копаюсь с этим уже около недели и нет результата.
Сумма элементов Core Data
BART96
#2
А какая ошибка-то? В чем именно проблема? Получить числа или сложить их? И продемонстрируйте проблемный участок кода
reduce
не изменяет массив, а создает новый. Или что вы подразумевали под «выводит по отдельности»?
let arr = [1,2,3,4,5]
arr.reduce(0, +) // 15
print(arr) // [1, 2, 3, 4, 5]
ODiN
#3
Из вашего вороса непонятно, что у вас конкретно не получается: обработать (reduce
) полученные данные из CoreData или собственно получить (FetchRequest
) данные?
В общем получилось у меня суммировать числа в атрибуте, но работает немного не так как нужно.
func totalSum(){
let context = getContext()
let fetchRequest = NSFetchRequest<NSFetchRequestResult>(entityName: "Item")
fetchRequest.returnsObjectsAsFaults = false;
let results: NSArray = try! context.fetch(fetchRequest) as NSArray
var totalHoursWorkedSum: Double = 0
for res in results {
let totalWorkTimeInHours = (res as AnyObject).value(forKey: "price") as! Double
totalHoursWorkedSum += totalWorkTimeInHours
}
print("Sum = \(totalHoursWorkedSum)")
}
Может подскажите где ошибка?