错误 - 无法为类型' LineChartData'调用初始化程序。使用类型'(xVals:[String],dataSet:LineChartDataSet)的参数列表'

时间:2017-10-05 09:21:52

标签: ios swift xcode swift3 graph

我目前正在使用Charts框架在我的应用中使用折线图。我使用了下面的代码但是发生了错误。这是代码 -

`func setChart(dataPoints: [String], values: [Double]) {

    var dataEntries: [ChartDataEntry] = []

    for i in 0..<dataPoints.count {
        let dataEntry = ChartDataEntry(x: values[i], y: Double(i))
        dataEntries.append(dataEntry)


    var colors: [UIColor] = []

    for i in 0..<dataPoints.count {
        let red = Double(arc4random_uniform(256))
        let green = Double(arc4random_uniform(256))
        let blue = Double(arc4random_uniform(256))

        let color = UIColor(red: CGFloat(red/255), green: CGFloat(green/255), blue: CGFloat(blue/255), alpha: 1)
        colors.append(color)
    }



        let lineChartDataSet = LineChartDataSet(values: dataEntries, label: "Units Sold")

        let lineChartDataa = LineChartData(xVals: dataPoints, dataSet: lineChartDataSet)

    Graph.data = lineChartDataa

}
`

正在发生的错误低于 -

  

无法为类型&#39; LineChartData&#39;调用初始值设定项使用类型&#39;(xVals:[String],dataSet:LineChartDataSet)&#39;

的参数列表

我有什么想法可以解决这个问题。

2 个答案:

答案 0 :(得分:1)

你必须这样使用:

这是设置LineChartData

let lineChartDataSet = LineChartDataSet(values: dataEntries, label: "Units Sold")     
let lineChartDataa = LineChartData(dataSet: lineChartDataSet)

用于设置xAxis标签:

Graph.xAxis.labelPosition = XAxis.LabelPosition.bottom
Graph.xAxis.valueFormatter = IndexAxisValueFormatter(values: dataPoints)

答案 1 :(得分:0)

LineChartData已将此声明为init。

public override init(dataSets: [IChartDataSet]?)

它的超类ChartData已声明了这些内容:

@objc public init(dataSets: [IChartDataSet]?)


@objc public convenience init(dataSet: IChartDataSet?)

看起来你正在尝试使用params的init是不可用的,因此编译错误。