我从xcode中得到了问题:
无法将'Charts.LineChartData'(0x1037def20)类型的值转换为'Charts.BarChartData'(0x1037e89c0)。
private func setLineStats(data: [Int],when: [Double]) {
var dataEntries: [ChartDataEntry] = []
for i in 0..<data.count {
dataEntries.append(ChartDataEntry(value: Double(data[i]), xIndex: i))
}
let lineDataSet = LineChartDataSet(yVals: dataEntries, label: "Function calls")
let lineData = LineChartData(xVals: self.months, dataSets: lineDataSet)
lineChartView.data = lineData
}
我使用它作为虚拟代码来确保使用BarChart的任何对象。
private func setBarStats(dataPoints: [String], values: [Double]) {
var dataEntries: [BarChartDataEntry] = []
for i in 0..<dataPoints.count {
let dataEntry = BarChartDataEntry(value: values[i], xIndex: i)
dataEntries.append(dataEntry)
}
let chartDataSet = BarChartDataSet(yVals: dataEntries, label: "Units Sold")
let chartData = BarChartData(xVals: months, dataSet: chartDataSet)
lineChartView.data = chartData
}
答案 0 :(得分:0)
您对如何使用Optional
和as
感到困惑。首先,Optional
意味着这可能是零。 as
用于类型转换。 as?
表示我想获得一个可选的新类型变量。所以你可能会因此而失败。 as!
表示我确定它不是零或我想在没有时崩溃它。这是WWDC Swift Optional Instruction
答案 1 :(得分:0)
此问题的解决方案位于Storyboard中,其中正在使用的View设置为BarChartView。改为LineChartView,效果很好。