Ios 烛台。Swift 2.2

Ios 烛台。Swift 2.2,ios,swift,charts,ios-charts,candlestick-chart,Ios,Swift,Charts,Ios Charts,Candlestick Chart,我正在尝试使用图表库()创建烛台KChart。我有以下代码: func setChart(xValues: [String], valuesCandleChart: [Double]) { barChartView.descriptionText = "" barChartView.noDataText = "You need to provide data for the chart." var yValsCandleChart : [CandleChartDataE

我正在尝试使用图表库()创建烛台KChart。我有以下代码:

func setChart(xValues: [String], valuesCandleChart: [Double]) {
    barChartView.descriptionText = ""
    barChartView.noDataText = "You need to provide data for the chart."

    var yValsCandleChart : [CandleChartDataEntry] = [CandleChartDataEntry]()
    for i in 0..<xValues.count {

        yValsCandleChart.append(ChartDataEntry(value: valuesCandleChart[i], xIndex: i))
    }
    let candleChartDataSet = LineChartDataSet(yVals: yValsCandleChart, label: nil)
    let data: CombinedChartData = CombinedChartData(xVals: xValues)
    data.candleData = CandleChartData(xVals: xValues, dataSets: [candleChartDataSet]
    barChartView.data = data
    barChartView.leftAxis.customAxisMin = 0   
}
func setChart(xValues: [String], valuesCandleChart: [[Double]]) {
    var yValsCandleChart : [CandleChartDataEntry] = [CandleChartDataEntry]()

    for i in 0..<xValues.count {
        print(" yValsCandleChart = \(valuesCandleChart[i])")
        yValsCandleChart.append(CandleChartDataEntry(xIndex: i, shadowH: valuesCandleChart[i][0], shadowL: valuesCandleChart[i][1], open: valuesCandleChart[i][2], close:  valuesCandleChart[i][0]))
    }

    let candleChartDataSet = CandleChartDataSet(yVals: yValsCandleChart, label: "test")


    let data: CombinedChartData = CombinedChartData(xVals: xValues)
    data.candleData = CandleChartData(xVals: xValues, dataSets: [candleChartDataSet])

}

override func viewDidLoad() {
    super.viewDidLoad()

let xValues = ["Jan","Feb"]
    let yValues: [[Double]] = [[10.0,1.5,5.5,3.6],[20.0,3.0,11.0,7.2]]

    setChart(xValues, valuesCandleChart: yValues)
}
func集合图表(xValues:[String],valuesCandleChart:[Double]){
barChartView.descriptionText=“”
barChartView.NodeataText=“您需要为图表提供数据。”
变量yValsCandleChart:[CandleChartDataEntry]=[CandleChartDataEntry]()

对于0中的i..您使用了错误的数据集和条目类,请使用
CandleChartDataSet
CandleChartDataEntry

您必须使用它的init方法

CandleChartDataEntry(xIndex:Int,shadowH:Double,shadowL:Double,open:Double,close:Double)

var yValsCandleChart:[CandleChartDataEntry]=[CandleChartDataEntry]()

对于0中的i..is
ChartDataEntry
CandleChartDataEntry
的超类吗?它们之间的任何关系?我不确定。我在使用条形图和折线图时使用了“ChartDataEntry”。当我使用“CandleChartDataEntry”时,我得到一个错误“无法使用参数列表类型为“CandleChartDataEntry”的初始化器”(value:Double,xIndex:Int)“我认为您使用的是第三方库?您需要查看该库的文档,看看数据对象的类层次结构是什么,以及每种类型的图表需要传递什么。(您可能需要编辑您的问题,以便“我正在尝试使用上提供的开源库
CandleStickChart
创建一个CandleStickChart。”@Duncac是的,我正在使用图表库(danielgindib),感谢tipI,我现在收到错误“无法使用类型为“(value:Double,index:Int)”的参数列表调用类型为“CandleChartDataEntry”的初始化器”“ValueScanneChart=[5.0,7.0,1.0,1.0,2.0,3.0,11.0,7.0,7.0,5.0],这是正确的格式吗?这是因为它不继承超类的init(值:Double,索引:Int)。答案已更新。您应该使用CandleChartDataEntry的init方法。您好,我仍然收到错误消息。”无法使用类型为“(xIndex:Int,shadowH:Double,shadowL:Double,open:Double,close:Double)的参数列表调用类型为“CandleChartDataEntry”的初始化器。类型“。我已用以下错误消息更新了我的代码。您完全不了解什么是swift函数参数。修复错误是您的责任。我已经提供了足够的信息。代码已更新。请慢慢从演示中了解所有信息。我无法提供更多帮助。”。
func setChart(xValues: [String], valuesCandleChart: [[Double]]) {


    var yValsCandleChart : [CandleChartDataEntry] = [CandleChartDataEntry]()

    for i in 0..<xValues.count {
        print(" yValsCandleChart = \(valuesCandleChart[i])")
        let val = valuesCandleChart[i][0]
        let high = valuesCandleChart[i][1]
        let low = valuesCandleChart[i][2]
        let open = valuesCandleChart[i][3]
        let close = valuesCandleChart[i][4]

        yValsCandleChart.append(CandleChartDataEntry(xIndex: i, shadowH: val + high, shadowL: val + low, open: val + open, close: val - close))
    }

    let candleChartDataSet = CandleChartDataSet(yVals: yValsCandleChart, label: "test")
    let data: CombinedChartData = CombinedChartData(xVals: xValues)

    data.candleData = CandleChartData(xVals: xValues, dataSets: [candleChartDataSet])
    candleChartView.data = data
}
var yValsCandleChart : [CandleChartDataEntry] = [CandleChartDataEntry]()
for i in 0..<xValues.count {

    yValsCandleChart.append(CandleChartDataEntry(xIndex: yourInt, shadowH: yourDouble, shadowL: yourDouble, open: yourDouble, close: yourDouble))
}

let candleChartDataSet = CandleChartDataSet(yVals: yValsCandleChart, label: nil)
for (int i = 0; i < count; i++)
{
    double mult = (range + 1);
    double val = (double) (arc4random_uniform(40)) + mult;
    double high = (double) (arc4random_uniform(9)) + 8.0;
    double low = (double) (arc4random_uniform(9)) + 8.0;
    double open = (double) (arc4random_uniform(6)) + 1.0;
    double close = (double) (arc4random_uniform(6)) + 1.0;
    BOOL even = i % 2 == 0;
    [yVals1 addObject:[[CandleChartDataEntry alloc] initWithXIndex:i shadowH:val + high shadowL:val - low open:even ? val + open : val - open close:even ? val - close : val + close]];
}