Как получить как группу из Core Data с Swift - PullRequest
0 голосов
/ 30 августа 2018

Я хочу, чтобы вы кое-что спросили о процессе извлечения Core Data. Я использую метод извлечения из Core Data ниже, но мне нужно что-то еще. Позвольте мне объяснить вам. Я пытался получить все данные и отфильтровать их в словаре, но это не сработало и не имело для меня смысла У меня есть много данных, таких как

    Date           Price
    01.08.2018     400
    03.08.2018     600
    04.08.2018     800

    06.09.2018     1000
    11.09.2018     300
    19.09.2018     200

Я хочу получить такие данные, как:

авг 2018 1800 Сентябрь 2018 1500

Как мне этого добиться?

Вот мой метод извлечения

 func fetchLessons() -> [Lessons] {
    let context = persistentContainer.viewContext
    let fetchRequest = NSFetchRequest<Lessons>(entityName: "Lessons")

    do {
        let lessons = try context.fetch(fetchRequest)
        return lessons

    } catch let fetchErr {
        print("Failed to fetch students:", fetchErr)
        return []
    }
}

1 Ответ

0 голосов
/ 30 августа 2018

Если вы хотите использовать сокращение в словаре, у которого числа в качестве значений, как в вашем примере, тогда выполните

let sum = dict.reduce(0, { total, item in
    total + item.value
})

Обновление

Если вы хотите группировать по месяцам, вы можете использовать простой цикл for, чтобы сделать это

var sumPerMonth: [String: Double] = [:]
let formatter = DateFormatter()
formatter.dateFormat = "yyyy MMM"

for item in dict {
    let month = formatter.string(from: item.key)
    if let value = sumPerMonth[month] {
        sumPerMonth[month] = value + item.value
    } else {
        sumPerMonth[month] = item.value
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...