ここでは、過去30日間のINRの通貨値を取得しようとしています。swift 3.0の非同期via URLを使用して複数のJSONデータを取得する方法
Alamofireを使用してINR通貨の過去30日間の値を取得しています。
//strDates contains all 30 days dates
for i in 0..<strDates.count {
Alamofire.request("http://api.fixer.io/\(strDates[i])?base=USD").responseJSON { response in
if let arr = response.result.value as? [String:AnyObject]
{
let inrc = (arr["rates"]?["INR"] as? Double)!
print(inrc)
self.sValues.append(inc)
print(sValues)
//It prints values here.
}
}
}
print(sValues) //Print nil
setChart(dataPoints: strDates, values: sValues)
このsValues配列は、Alamofireブロックの外でどのように使用しますか。
ここでは、実際には、&のINR値を以下の方法のパラメータとして送信しています。
func setChart(dataPoints: [String], values: [Double]) {
barChartView.noDataText = "You need to provide data for the chart."
for i in 0..<dataPoints.count {
let dataEntry = BarChartDataEntry(x: Double(i), yValues: [values[i]])
dataEntries.append(dataEntry)
}
let chartDataSet = BarChartDataSet(values: dataEntries, label: "INR Rates(₹)/$")
let chartData = BarChartData(dataSet: chartDataSet)
barChartView.data = chartData
barChartView.xAxis.labelPosition = .bottom
barChartView.rightAxis.enabled = false
barChartView.leftAxis.enabled = true
barChartView.data?.setDrawValues(false)
barChartView.leftAxis.granularityEnabled = true
barChartView.leftAxis.granularity = 1.0
barChartView.xAxis.granularityEnabled = true
barChartView.xAxis.granularity = 1.0
barChartView.leftAxis.axisMinimum = 70//65
barChartView.leftAxis.axisMaximum = 60//70
//chartDataSet.colors = [UIColor.cyan, UIColor.green]
}
ありがとうございました。うまく動作します –
こんにちは@Josh、新しい問題に直面しています。私が別のビューに移動してChartViewに戻ると、棒グラフが更新され、異なる値が表示されます。 –
棒グラフを更新し、ナビゲートまたは更新するたびに毎回異なる値を表示します。 –