无法使用类型为' String'的参数列表调用CGFloat类型的初始值设定项。

时间:2017-04-07 07:12:12

标签: swift bar-chart jawbone

我正在制作JBChart的条形图。我想将chartData更改为String。请帮我做。

这里是chartData代码:      var chartData = [1,2,3]

然后我想从其他视图控制器的UILabel将其更改为String。

var chartData = [score1, score2, score3]

但是我总是得到这个错误(不能在这段代码中用类型' String')的类型CGFloat调用初始化器:

    public func barChartView(_ barChartView: JBBarChartView!, heightForBarViewAt index: UInt) -> CGFloat {
        return CGFloat(chartData[Int(index)])
    }

1 个答案:

答案 0 :(得分:3)

错误显然是CGFloat没有接受String作为参数的初始值设定项。您可以像第一次转换StringFloat一样使用包裹,然后将Float转换为CGFloat

public func barChartView(_ barChartView: JBBarChartView!, heightForBarViewAt index: UInt) -> CGFloat {

    if let value = Float(chartData[Int(index)]) {
        return CGFloat(value)
    }
    return 0
}

注意:请确保此String的数字为值,否则会0返回height