Я пытаюсь отобразить некоторые значения базовых данных в диаграмме, используя SwiftUI и пакеты AppPear (https://github.com/AppPear/ChartView).
Моя сущность выглядит следующим образом:
public class Data: NSManagedObject, Identifiable {
@NSManaged public var id: UUID
@NSManaged public var value: Double
@NSManaged public var valueDescription: String?
@NSManaged public var date: NSDate
}
Цель состоит в том, чтобы отобразить «значение» на графике, с «датой» в качестве оси X.
Мне удалось отобразить значения «значения» на графике в виде следующее:
import SwiftUI
import SwiftUICharts
struct NSFetchArrayTest: View {
@FetchRequest(fetchRequest: Data.allDataFetchRequest()) var data: FetchedResults<Datas>
@Environment(\.managedObjectContext) var managedObjectContext
var body: some View {
VStack {
LineView(data: data.map {$0.value}, title: "Test", legend: "None").padding()
}
.frame(minWidth: 300, maxWidth: .infinity, minHeight: 300, maxHeight: .infinity)
}
}
Однако теперь значения 'value' сортируются от низкого к высокому. Я хочу, чтобы они были отсортированы по атрибуту date. Несколько стековых сообщений предлагают добавить:
sorted(by: { $0.date > $1.date })
Что приведет к:
LineView(data: data.map {$0.value}.sorted(by: { $0.date > $1.date }), title: "Test", legend: "None").padding()
Это приводит к типу ошибки:
Аргумент передан для вызова это не требует аргументов .
Это сообщение: Сортировка Swift 3.0 - аргумент, переданный для вызова, который не принимает аргументов предлагает тот же тип ошибки, но я понятия не имею, как изменить / изменить мой код, чтобы сделать его работа.
У кого-нибудь есть подсказка или идея для обхода?