Charts: Barchart ์• ๋‹ˆ๋ฉ”์ด์…˜ ์œ ํ˜• easyInBack ์ถฉ๋Œ

์— ๋งŒ๋“  2018๋…„ 03์›” 14์ผ  ยท  3์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: danielgindi/Charts

ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ์ด ์žˆ์Šต๋‹ˆ๋‹ค
```
๋ง‰๋Œ€ ์ฐจํŠธ ๋ณด๊ธฐ {

private class BarChartFormatter: NSObject,IAxisValueFormatter {

    var values : [String]
    required init (values : [String]) {
        self.values = values
        super.init()
    }


    func stringForValue(_ value: Double, axis: AxisBase?) -> String {
        return values[Int(value)]
    }
}

func setChartValues (xAxisValues : [String] , values : [Double],label : String) {

    var barChartDataEntries = [BarChartDataEntry]()

    for i in 0..<values.count {
        let dataEntry = BarChartDataEntry(x: Double(i), y: values[i])
        barChartDataEntries.append(dataEntry)
    }
    let chartDataSet = BarChartDataSet(values: barChartDataEntries, label: label)
    chartDataSet.colors = ChartColorTemplates.colorful()
    let chartData = BarChartData(dataSet: chartDataSet)

    let formatter = BarChartFormatter(values: xAxisValues)
    let xAxis = XAxis()
    xAxis.valueFormatter = formatter
    self.xAxis.valueFormatter = xAxis.valueFormatter
    self.xAxis.labelPosition = .bottom

    self.data = chartData
   // self.data?.notifyDataChanged()
   // self.notifyDataSetChanged()

    self.animate(xAxisDuration: 2.0, yAxisDuration: 2.0, easingOption: .easeInBack) // Cause  crash

}

}
```

๊ทธ๋ฆฌ๊ณ  ์—ฌ๊ธฐ์—์„œ ์•ฑ์ด ์ถฉ๋Œํ•ฉ๋‹ˆ๋‹ค.

for j in 0 ..< Int(ceil(Double(dataSet.entryCount) * animator.phaseX)) // Crash here { guard let e = dataSet.entryForIndex(j) as? BarChartDataEntry else { continue }

์น˜๋ช…์ ์ธ ์˜ค๋ฅ˜ : upperBound <lowerBound๋กœ ๋ฒ”์œ„๋ฅผ ํ˜•์„ฑ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

(lldb) po dataSet.entryCount
12

(lldb) po animator.phaseX
-0.085005447941268492

์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜์‹ญ์‹œ์˜ค

bug help wanted

๋ชจ๋“  3 ๋Œ“๊ธ€

๋‚˜๋Š” ๋‹น์‹ ์˜ ํ”„๋กœ์ ํŠธ์— ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ๋Š” ํฐ ๊ธฐ๋Šฅ์ด์žˆ์„ ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.
์‹œ๊ฐ„์ด ๋๋‚ฌ๋‹ค

๋ผ ์†”๋ฃจ์…˜

        DispatchQueue.main.async(execute: {() -> Void in
       self.animate(xAxisDuration: 2.0, yAxisDuration: 2.0, easingOption: .easeInBack) 
        })

๋‚˜๋„ ๊ทธ๋ ‡๊ฒŒ ์ƒ๊ฐํ•ด,
for j in 0 ..< Int(ceil(Double(dataSet.entryCount) * animator.phaseX))
์œ„ํ•ด ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค
for j in stride(from: 0, to: Int(ceil(Double(dataSet.entryCount) * animator.phaseX)), by: 1)

@PrashantKT ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ๊ณ  @txoan ์ด ๊ฒŒ์‹œํ•œ ์Šค๋‹ˆํŽซ์ด ์ž‘๋™ํ•˜๊ณ  ์žˆ์ง€๋งŒ ์†”๋ฃจ์…˜์ด ์ƒˆ๋กœ์šด ๋ฒ„๊ทธ๋‚˜ ๋‹ค๋ฅธ ๋ฌธ์ œ๋ฅผ @jjatie @liuxuan30

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰

๊ด€๋ จ ๋ฌธ์ œ

Bharati555 picture Bharati555  ยท  4์ฝ”๋ฉ˜ํŠธ

kirti0525 picture kirti0525  ยท  3์ฝ”๋ฉ˜ํŠธ

heumn picture heumn  ยท  3์ฝ”๋ฉ˜ํŠธ

kwstasna picture kwstasna  ยท  3์ฝ”๋ฉ˜ํŠธ

cilasgimenez picture cilasgimenez  ยท  4์ฝ”๋ฉ˜ํŠธ