dificuldades após "Como usar a API de gráficos do iOS para criar gráficos bonitos no Swift"
o tutorial do AppCoda, datado de 23/06/2015, orienta você na conclusão de um projeto inicial que não atrai suas visualizações para uma que o faz. no entanto, meu projeto desenha o gráfico de barras de exemplo incorretamente; no tutorial, todas as barras aparecem e estão rotuladas corretamente. eu coloquei minha versão do projeto aquiIOChartsDemo.
é isso que acontece no meu projeto
ambiente de desenvolvimento:
macOS 12.5.5, Xcode 8.3.3 (8E3004b)Gráficos 3.0.2baixei o projeto inicial indicado no tutorial.
o projeto inicial no tutorial não foi criado, houve problemas de API. Depois de seguir as instruções no tutorial e corrigir os erros, acabo com isso (as linhas de problemas são comentadas):
class BarChartViewController: UIViewController {
@IBOutlet weak var barChartView: BarChartView!
var months: [String]!
override func viewDidLoad() {
super.viewDidLoad()
// barChartView.noDataTextDescription = "Just because" type BarChartView doest have noDataTextDescription
months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
let unitsSold = [20.0, 4.0, 6.0, 3.0, 12.0, 16.0, 4.0, 18.0, 2.0, 4.0, 5.0, 4.0]
// setChart(months, values: unitsSold) missing argument label dataPoints: in call
setChart(dataPoints: months, values: unitsSold)
}
func setChart(dataPoints: [String], values: [Double]) {
barChartView.noDataText = "You need to provide data for the chart."
var dataEntries: [BarChartDataEntry] = []
for i in 0..<dataPoints.count {
// let dataEntry = BarChartDataEntry(value: values[i], xIndex: i) // argument labeld dont match
let dataEntry = BarChartDataEntry(x: values[i], y: Double(i), data: dataPoints[i] as AnyObject)
dataEntries.append(dataEntry)
}
let chartDataSet = BarChartDataSet(values: dataEntries, label: "Units Sold")
// let chartData = BarChartData(xVals: months, dataSet: chartDataSet) cannot invoke initializer BarCharData with arg list of (xVals: [String]!, dataSet: BarCharDataSet
let chartData = BarChartData(dataSets: [chartDataSet])
barChartView.data = chartData
}
}
Neste ponto, quando executo o aplicativo, obtenho o resultado indicado anteriormente. Eu os consertei depois de passar pela API do Charts. Suponho que esse problema seja causado pelas alterações dos gráficos 2.x para 3.x.
se você é um especialista em gráficos, solicito sua assistência.