【发布时间】:2020-05-28 15:43:31
【问题描述】:
我有变量:
// Russia, US, and other country, its dynamical changing
var mytest = someTextLabel.text
我需要在 JSON 解析后将“mytest”作为字典参数注入:
// compile error, dailyStat don't have member 'mytest'
self.myArray = dailyStat.mytest.map{ Double($0.recovered) }
dailyStat 具有以下结构:
struct dailyStat: Codable {
let france: [CovidNums]
let russia: [CovidNums]
let us: [CovidNums]
let brazil : [CovidNums]
let uk: [CovidNums]
let spain: [CovidNums]
enum CodingKeys: String, CodingKey {
case us = "US"
case russia = "Russia"
case france = "France"
case brazil = "Brazil"
case uk = "United Kingdom"
case spain = "Spain"
}
}
struct CovidNums: Codable {
let date: String
let confirmed, deaths, recovered: Int
}
我不想用 case switch:
switch mytest {
case "Russia"
self.myArray = dailyStat.russia.map{ Double($0.recovered) }
case "US"
self.myArray = dailyStat.us.map{ Double($0.recovered) }
...
因为我有 100 个国家
【问题讨论】:
-
mytest在DailyStat中在哪里? -
mytest 它唯一的变量,我需要使用这个变量作为数组参数
-
您的
dailyStat对象具有每个国家/地区的属性?使用[String, [CovidNums]]字典会不会更好,或者如果您想输入安全,您可以创建所有国家/地区的枚举 -
也许你应该使用
[String: [CovidNums]]字典而不是DailyStat。或[CountryEnum: [CovidNums]]。这样您就可以使用键进行下标,并且当国家/地区列表发生变化时,您无需修改结构。 -
很快会怎样?