【发布时间】:2018-01-18 10:50:00
【问题描述】:
我正在从一个 API 获取数据,该 API 每天多次将其格式从 String 不规律地更改为 Double..
是否可以对struct 做一些事情以防止在获取时返回 nil 并自动使用正确的类型?
struct BitcoinGBP : Decodable {
let price : Double
let percentChange24h : Double
private enum CodingKeys : String, CodingKey {
case price = "PRICE"
case percentChange24h = "CHANGEPCT24HOUR"
}
}
简单地使用Double? 会起作用吗?
【问题讨论】:
-
可解码协议需要知道确切的数据类型才能工作。您应该提前知道数据类型,或者如果您知道一天中数据类型何时更改,您可以将此结构设为泛型并通过在一天中的特定时间设置 String 或 Double 来显式使用。
-
问题是我不知道 API 什么时候会从
Double切换到String或相反。我不想让我的用户更新每天应用