Swift Charts技术问题:如何输出HeartRate结构体生成的数据数组?
打印Swift Charts生成的心率数据数组
1. 在Playground中直接打印
直接调用HeartRate.data获取数据数组即可打印。为了让输出更易读,建议给HeartRate添加CustomStringConvertible扩展优化打印格式:
// 添加扩展,让打印内容更直观 extension HeartRate: CustomStringConvertible { var description: String { "Day: \(day), Heart Rate: \(value)" } } // 在Playground中调用并打印 let heartRateData = HeartRate.data print("生成的心率数据:") heartRateData.forEach { print($0) }
运行后就能在Playground控制台看到每个元素的日期和心率数值。
2. 在SwiftUI视图中打印
可以选择两种时机打印数据:视图初始化时,或者视图渲染完成后。
方式一:初始化时打印
修改NewLineChartView的初始化方法,在初始化过程中打印数据:
struct NewLineChartView: View { var dataPoints: [HeartRate] init(dataPoints: [HeartRate] = HeartRate.data) { self.dataPoints = dataPoints // 打印数据 print("视图初始化时的心率数据:") dataPoints.forEach { print($0) } } var body: some View { Chart(dataPoints, id: \.self) { rate in LineMark(x: .value("Day", rate.day), y: .value("Heart rate", rate.value)) .foregroundStyle(.red) .symbol(Circle().strokeBorder(lineWidth: 1.5)) } } }
方式二:视图出现时打印
利用.onAppear修饰符,在视图渲染完成后打印数据:
struct NewLineChartView: View { var dataPoints: [HeartRate] var body: some View { Chart(dataPoints, id: \.self) { rate in LineMark(x: .value("Day", rate.day), y: .value("Heart rate", rate.value)) .foregroundStyle(.red) .symbol(Circle().strokeBorder(lineWidth: 1.5)) } .onAppear { print("视图出现时的心率数据:") dataPoints.forEach { print($0) } } } }
完成修改后,在Xcode预览或运行App时,就能在控制台看到生成的日期和数值数组。
内容的提问来源于stack exchange,提问作者mgianzero
相关产品推荐
相关产品推荐

