【发布时间】:2017-01-13 09:34:23
【问题描述】:
问题说明:每次我刷新viewController,都会得到不同的值。
必需的解决方案:每当我刷新时,它应该获取相同的值。
编码材料: 下面我通过 url 从 JSON 解析中获取值。获取值后,它作为参数传递给“setChart() 函数”。
override func viewDidLoad()
{
super.viewDidLoad()
var completedCalls = 0
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]
{
completedCalls += 1
let inrc = (arr["rates"]?["INR"] as? Double)!
print(inrc)
self.sValues.append(inc)
print(sValues)
//It prints values here.
if completedCalls = strDates.count {
DispatchQueue.main {
setChart(dataPoints: strDates, values: sValues)
}
}
}
}
}
setChart() 函数
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.leftAxis.axisMinimum = 65
barChartView.leftAxis.axisMaximum = 70
barChartView.xAxis.labelPosition = .bottom
barChartView.rightAxis.enabled = false
barChartView.data?.setDrawValues(false)
}
}
【问题讨论】:
-
是的,没错,但我传递相同的日期来获取值。每当我刷新时再次。
-
我正在从 currentDate 解析过去 30 天的 INR 值。所以它应该得到与过去 30 天相同的值。
-
如果我要去哪里错了请纠正我。
-
为什么不向我们展示一些结果并告诉我们为什么它们不正确。