如何在Swift 3.0中使用url通过异步获取多个JSON数据

用户名

在这里,我试图获取最近30个日期的INR货币值。

我正在使用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)

如何在Alamofire区块外使用此sValues数组。

在这里,实际上我正在将日期和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 Homann)

仅在所有呼叫完成后,您是否要刷新图表?如果是这样,则使用以下模式:

    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)
                    }
                }
            }
        }
    }

这个想法是计算返回多少API请求,并且仅在所有请求完成后才采取措施(您应该检查所有请求是否也都成功了,如果失败则显示错误)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Swift 3中使用HTTP Post方法获取JSON数据?

来自分类Dev

如何在Swift 3中使用jSON填充TableView

来自分类Dev

如何在Swift 3中获取systemLocaleCountryCode?

来自分类Dev

如何在核心数据Swift 3中使用persistentStore(for:url)

来自分类Dev

如何在Swift 3中覆盖layerClass?

来自分类Dev

如何在Swift 3中绘制LineChartData?

来自分类Dev

如何在 Swift 3 中创建 AudioQueueInputCallback?

来自分类Dev

如何在 Swift 3 中旋转屏幕?

来自分类Dev

如何在 Swift 3 中刷新视图

来自分类Dev

如何在swift 3中从json获取日期时间

来自分类Dev

如何在Swift 3中使用NSTimeInterval

来自分类Dev

如何在swift 3中使用核心数据为多个部门保存一条记录

来自分类Dev

如何在Swift 3中从字典中获取数组

来自分类Dev

如何在Swift 3的UIView类中使用performSegue

来自分类Dev

如何在 Swift 3 中使用 unwind(for: UIStoryboardSegue,comingViewController: UIViewController)?

来自分类Dev

如何在 iOS Swift 3 中使用保护和条件?

来自分类Dev

如何在 swift3 XMLParse 中使用 urlsession

来自分类Dev

如何在 swift 3 中使用 Alamofires ServerTrustPolicy.disableEvaluation

来自分类Dev

如何在Swift 3中获取发件人的身份

来自分类Dev

如何在Swift 3中获取类属性标签?

来自分类Dev

如何在Swift 3中获取此CoreData?

来自分类Dev

如何在swift3中使用数据初始化结构变量

来自分类Dev

如何在swift 3中发布原始数据?

来自分类Dev

如何在Swift 3中使用循环打印JSON值?

来自分类Dev

如何在swift 3中使用数组和字符串进行json

来自分类Dev

如何在 ios Swift 3 中从模型创建 JSON

来自分类Dev

如何在 Alamofire 请求 swift 3 中传递 JSON 对象

来自分类Dev

如何在 Swift 3 Vapor 中将 JSON 转换为字典

来自分类Dev

扩展程序如何在Swift 3中工作?

Related 相关文章

  1. 1

    如何在Swift 3中使用HTTP Post方法获取JSON数据?

  2. 2

    如何在Swift 3中使用jSON填充TableView

  3. 3

    如何在Swift 3中获取systemLocaleCountryCode?

  4. 4

    如何在核心数据Swift 3中使用persistentStore(for:url)

  5. 5

    如何在Swift 3中覆盖layerClass?

  6. 6

    如何在Swift 3中绘制LineChartData?

  7. 7

    如何在 Swift 3 中创建 AudioQueueInputCallback?

  8. 8

    如何在 Swift 3 中旋转屏幕?

  9. 9

    如何在 Swift 3 中刷新视图

  10. 10

    如何在swift 3中从json获取日期时间

  11. 11

    如何在Swift 3中使用NSTimeInterval

  12. 12

    如何在swift 3中使用核心数据为多个部门保存一条记录

  13. 13

    如何在Swift 3中从字典中获取数组

  14. 14

    如何在Swift 3的UIView类中使用performSegue

  15. 15

    如何在 Swift 3 中使用 unwind(for: UIStoryboardSegue,comingViewController: UIViewController)?

  16. 16

    如何在 iOS Swift 3 中使用保护和条件?

  17. 17

    如何在 swift3 XMLParse 中使用 urlsession

  18. 18

    如何在 swift 3 中使用 Alamofires ServerTrustPolicy.disableEvaluation

  19. 19

    如何在Swift 3中获取发件人的身份

  20. 20

    如何在Swift 3中获取类属性标签?

  21. 21

    如何在Swift 3中获取此CoreData?

  22. 22

    如何在swift3中使用数据初始化结构变量

  23. 23

    如何在swift 3中发布原始数据?

  24. 24

    如何在Swift 3中使用循环打印JSON值?

  25. 25

    如何在swift 3中使用数组和字符串进行json

  26. 26

    如何在 ios Swift 3 中从模型创建 JSON

  27. 27

    如何在 Alamofire 请求 swift 3 中传递 JSON 对象

  28. 28

    如何在 Swift 3 Vapor 中将 JSON 转换为字典

  29. 29

    扩展程序如何在Swift 3中工作?

热门标签

归档