我对Swift编程还很陌生,我一直在关注在线教程,以使用结构从静态虚拟数据创建条形图。下面是虚拟数据:
private static func createDummyData() -> [ChartViewData] {
let one = ChartViewData(date: "2/5/19", weight: 50)
let two = ChartViewData(date: "3/5/19", weight: 60)
let three = ChartViewData(date: "4/5/19", weight: 65)
let four = ChartViewData(date: "8/5/19", weight: 55)
let five = ChartViewData(date: "9/5/19", weight: 100)
return[one, two, three, four, five]
}
我的结构定义为:
struct ChartViewData {
var date: String
var weight: Double
}
我想使用存储在数组 date 和 weight 中的自己的数据填充条形图。在不更改工作图表模型和结构的情况下,最佳方法是什么?
预先感谢
编辑:大家道歉,我的意思是商店没有在问题标题中排序!
答案 0 :(得分:0)
您可以通过Application
ping数组并ChartViewData
来创建zip
实例
map
日期格式“ d / M / yy”不适用于对日期进行排序。使用字符串格式“ yy / MM / dd”或将let dateArray = ["2/5/19", "3/5/19", "4/5/19", "8/5/19", "9/5/19"]
let weightArray = [50.0, 60.0, 65.0, 55.0, 100.0]
let chartData = zip(dateArray, weightArray).map(ChartViewData.init)
print(chartData)
成员声明为date
。
答案 1 :(得分:0)
您可以使用存储在数组 date 和 weight 中的自己的数据,通过迭代数组来填充条形图。像这样先更改createDummyData
方法
private static func createDummyData(dateArray: [String], weightArray: [Double]) -> [ChartViewData] {
var dataArray: [ChartViewData] = []
for i in 0..<dateArray.count {
let barData = ChartViewData(date: dateArray[i], weight: weightArray[i])
dataArray.append(barData)
}
return dataArray
}
在调用此方法时,将数组作为参数传递
YourClassName.createDummyData(dateArray: date, weightArray: weight)
您可以更短地更改方法
private static func createDummyData(dateArray: [String], weightArray: [Double]) -> [ChartViewData] {
return zip(dateArray,weightArray).map { ChartViewData(date: $0, weight: $1) }
}