OpenExchangeRates for Swift
示例
要运行示例项目,请先克隆仓库,然后从示例目录运行pod install
。
需求
安装
OpenExchangeRatesClient可以通过CocoaPods获取。要安装它,简单地在您的Podfile中添加以下行
pod 'OpenExchangeRatesClient'
如何使用
示例
let openExchangeRatesClient = OpenExchangeRatesClient(clientKey: "Enter Your APIKey")
openExchangeRatesClient.getRates(base: "USD") { (rates, error) in
print("Base : \(String(describing: rates?.base))")
print("Rates: \(String(describing: rates?.rates))")
print("USD -> KRW, \(String(describing: rates?.rates["KRW"]))")
}
OpenExchangeRates.swift
struct OpenExchangeRates: Decodable {
let timestamp: Double
let base: String
let rates: [String: Double]
let date: Date
enum CodingKeys: String, CodingKey {
case timestamp
case base
case rates
}
}
init(from decoder: Decoder) throws {
let container = try decoder.container(keyedBy: CodingKeys.self)
timestamp = try container.decode(Double.self, forKey: .timestamp)
base = try container.decode(String.self, forKey: .base)
rates = try container.decode([String:Double].self, forKey: .rates)
date = Date(timeIntervalSince1970: timestamp)
}
来自 OpenExchangeRates API 的响应
{
"disclaimer": "Usage subject to terms: https://openexchangerates.org/terms",
"license": "https://openexchangerates.org/license",
"timestamp": 1535799625,
"base": "USD",
"rates": {
"AED": 3.673175,
"AFN": 73.4825,
"ALL": 108.99,
"AMD": 482.915414,
"ANG": 1.845847,
"AOA": 276.2165,
"ARS": 36.842,
"AUD": 1.3906,
"AWG": 1.792495,
"AZN": 1.7025,
"BAM": 1.677196,
"BBD": 2,
"BDT": 83.843139,
"BGN": 1.685345,
"BHD": 0.377138,
"BIF": 1771.091778,
"BMD": 1,
"BND": 1.510944,
"BOB": 6.910951,
"BRL": 4.0551,
"BSD": 1,
"BTC": 0.000141123718,
"BTN": 70.949974,
"BWP": 10.747955,
"BYN": 2.085752,
"BZD": 2.010947,
"CAD": 1.30475,
"CDF": 1642.181123,
"CHF": 0.968101,
"CLF": 0.02338,
"CLP": 681.6,
"CNH": 6.8457,
"CNY": 6.8302,
"COP": 3044.005883,
"CRC": 572.154399,
"CUC": 1,
"CUP": 25.5,
"CVE": 94.5465,
"CZK": 22.2039,
"DJF": 178.05,
"DKK": 6.4255,
"DOP": 50.085,
"DZD": 117.981224,
"EGP": 17.7975,
"ERN": 14.9965,
"ETB": 27.64459,
"EUR": 0.8612,
"FJD": 2.110652,
"FKP": 0.771545,
"GBP": 0.771545,
"GEL": 2.478217,
"GGP": 0.771545,
"GHS": 4.7455,
"GIP": 0.771545,
"GMD": 48.035,
"GNF": 9049.579803,
"GTQ": 7.563506,
"GYD": 210.2347,
"HKD": 7.84945,
"HNL": 24.016446,
"HRK": 6.4106,
"HTG": 69.042165,
"HUF": 281.52,
"IDR": 14376.016583,
"ILS": 3.607625,
"IMP": 0.771545,
"INR": 70.87,
"IQD": 1193.793187,
"IRR": 43163.27868,
"ISK": 107.650208,
"JEP": 0.771545,
"JMD": 136.580012,
"JOD": 0.709506,
"JPY": 111.03955251,
"KES": 100.68,
"KGS": 68.137481,
"KHR": 4093.290948,
"KMF": 426.091764,
"KPW": 900,
"KRW": 1113.7,
"KWD": 0.302721,
"KYD": 0.833693,
"KZT": 363.782619,
"LAK": 8521.807802,
"LBP": 1515.15,
"LKR": 161.5701,
"LRD": 154.249966,
"LSL": 14.618602,
"LYD": 1.378752,
"MAD": 9.435534,
"MDL": 16.760344,
"MGA": 3336.551263,
"MKD": 53.05,
"MMK": 1534.332732,
"MNT": 2442.166667,
"MOP": 8.088022,
"MRO": 357,
"MRU": 35.95,
"MUR": 34.3455,
"MVR": 15.459996,
"MWK": 727.31854,
"MXN": 19.084528,
"MYR": 4.117007,
"MZN": 59.915,
"NAD": 14.415,
"NGN": 362.17,
"NIO": 31.949515,
"NOK": 8.3872,
"NPR": 113.520796,
"NZD": 1.51125,
"OMR": 0.384915,
"PAB": 1,
"PEN": 3.30515,
"PGK": 3.314782,
"PHP": 53.417378,
"PKR": 122.99,
"PLN": 3.708649,
"PYG": 5851.449587,
"QAR": 3.640999,
"RON": 3.999293,
"RSD": 101.920145,
"RUB": 67.516,
"RWF": 880.861282,
"SAR": 3.7503,
"SBD": 7.88911,
"SCR": 13.609587,
"SDG": 18.074459,
"SEK": 9.147479,
"SGD": 1.3721,
"SHP": 0.771545,
"SLL": 8390,
"SOS": 578.75178,
"SRD": 7.458,
"SSP": 130.2634,
"STD": 21050.59961,
"STN": 21.18,
"SVC": 8.753777,
"SYP": 514.97999,
"SZL": 14.645416,
"THB": 32.717,
"TJS": 9.42761,
"TMT": 3.504979,
"TND": 2.761405,
"TOP": 2.310538,
"TRY": 6.545173,
"TTD": 6.742907,
"TWD": 30.687,
"TZS": 2287.358006,
"UAH": 28.26,
"UGX": 3764.104986,
"USD": 1,
"UYU": 32.213818,
"UZS": 7830.834431,
"VEF": 248471.708907,
"VES": 60.128839,
"VND": 23114.337672,
"VUV": 108.499605,
"WST": 2.588533,
"XAF": 564.910168,
"XAG": 0.06879011,
"XAU": 0.00083256,
"XCD": 2.70255,
"XDR": 0.713142,
"XOF": 564.910168,
"XPD": 0.00101796,
"XPF": 102.768496,
"XPT": 0.0012703,
"YER": 250.349279,
"ZAR": 14.687465,
"ZMW": 10.31453,
"ZWL": 322.355011
}
}
作者
shawnbaek, [email protected]