YahooCurrencyApiWrapper 1.1.3

YahooCurrencyApiWrapper 1.1.3

测试测试
Lang语言 SwiftSwift
许可证 MIT
发布最新发布2017年4月
SwiftSwift 版本3.0
SPM支持 SPM

Mohamed Arradi-Alaoui 维护。



描述

YahooCurrencyApiWrapper 是一个从雅虎货币 API 简单封装数据的一个 API

概述

A simple iOS Wrapper for the Yahoo Finance API that helping you

  1. 从 Yahoo Finance API 中获取两种货币之间的汇率

  2. 从多个货币相对于一个基准货币(例如EUR,GBP,AED)获取货币汇率(例如相对于美元的一笔请求)

  3. 获取过去几天的历史汇率(默认为USD)。

动机

由于我非常想为一个金融项目使用货币转换,但我总是找不到股票交易所的API,而iOS中的任何一个对其都既不够简单也不够有用。

安装

此库与 iOS 8 + 兼容,并使用 Swift 3.0 编写。

通过 CocoaPods

将以下依赖项添加到 podfile 中:

pod 'YahooCurrencyApiWrapper'

然后,运行以下命令:

$ pod install

代码示例

货币汇率用例

let base : String = "USD"
let other : String = "EUR"

YahooCurrencyApiWrapper.sharedInstance.getAllCurrencyFrom(base: base, other: other) { (rate : Double, time : String?, error : NSError?) in

guard error == nil else {

let errorCode : Int = (error?.code)!

switch errorCode { case ErrorType.currencyNotFound.rawValue : print (“市场找不到货币”) case ErrorType.rateNotApplicable.rawValue : print (“汇率对该货币(其他)无效”) default : return } return }

// 一切正常,我们得到了汇率 print (“1(基准)= (rate) (其他)”) }

您可以从 Yahoo API 获取两种类型的错误(货币不存在或汇率未找到),

所有与 HTTP 响应相关的错误都处理为经典的 NSError 类型。

public enum ErrorType : Int { case rateNotApplicable = 999,currencyNotFound }

但这还不够,也许您想能够从多种货币中获取与相同基准货币的汇率!

为此,有一个专门的方法可以做到这一点

//create a list of currency as [String] 

let others : [String] = ["EUR","GBP","DZD","AED"]

//Then pass it with your base

YahooCurrencyApiWrapper.sharedInstance.getCurrenciesRates(base: base, others: others) { (exchanges : [Exchange]?, error : NSError?) in

guard error == nil else { return}

exchanges?.forEach {
let item : Exchange = $0
print("1 \(item.from!) = \(item.rate!) \(item.to!)")
}

}

它将返回以下交易所对象列表,如果货币汇率不可用,则返回0.0值。

public class Exchange {

public var from : String?
public var to : String?
public var rate : Double?

历史汇率用例

YahooCurrencyApiWrapper.sharedInstance.getHistoricalCurrencies(currencyName: “GBP”, days: 7) { (items : [HistoricalItem]?, error : NSError?) in

guard error == nil else { return}

items?.forEach { let item : HistoricalItem = $0

打印("开盘价为(货币) = (item.openValue!),日期为(item.date)") } }

此方法返回一个item列表,用于描述每一天的(开盘、收盘、高价、低价)状态。

历史簿记项的结构如下

public struct HistoricalItem {

public var openValue : Double? public var highValue : Double? public var lowValue : Double? public var closeValue : Double? public var date : Date?

}

您可以在示例文件夹中的示例应用程序中查看如何使用它。

还有更多,但基本功能就在这里。

下一步是什么?

  1. 提供直接转换货币的方式
  2. 添加缓存管理

许可

使用的许可协议是MIT。

作者

Mohamed ARRADI-ALAOUI - [email protected]

如果您正在使用此库,并且认为可以实施某些特定工具,请随时告知我