LineChartData到BarChartData

时间:2016-06-22 02:32:35

标签: ios swift charts

我从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
}

2 个答案:

答案 0 :(得分:0)

您对如何使用Optionalas感到困惑。首先,Optional意味着这可能是零。 as用于类型转换。 as?表示我想获得一个可选的新类型变量。所以你可能会因此而失败。 as!表示我确定它不是零或我想在没有时崩溃它。这是WWDC Swift Optional Instruction

答案 1 :(得分:0)

此问题的解决方案位于Storyboard中,其中正在使用的View设置为BarChartView。改为LineChartView,效果很好。