Невозможно вызвать инициализатор для типа CGFloat со списком аргументов типа 'String'

Я делаю гистограмму из JBChart. Я хотел бы изменить chartData на String. пожалуйста, помогите мне сделать это.

вот код chartData: var chartData = [1, 2, 3]

Затем я хочу изменить его на строку из UILabel из другого контроллера представления.

var chartData = [score1, score2, score3]

Но я всегда получаю эту ошибку (Невозможно вызвать инициализатор для типа CGFloat со списком аргументов типа 'String') в этом коде:

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

1 ответ

Решение

Ошибка ясно говорит о том, что CGFloat не имеет инициализатора, который принимает String в качестве аргумента. Вы можете использовать обернутый как первый конвертировать String в Float а затем конвертировать 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,

Другие вопросы по тегам