【发布时间】:2020-07-27 02:39:08
【问题描述】:
我正在尝试使用 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)
}
}
但是,现在“值”值是从低到高排序的。我希望它们根据“日期”属性进行排序。建议添加几个堆栈帖子:
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 sort - Argument passed to call that takes no arguments 提出了相同的错误类型,但我不知道如何修改/更改我的代码以使其正常工作。
有没有人知道解决方法或想法?
【问题讨论】:
标签: arrays sorting charts mapping swiftui