【发布时间】:2018-09-11 07:37:38
【问题描述】:
我正在尝试理解 swift 枚举,为此,我决定使用关联的枚举创建一个数据源。现在我不确定我的问题行是否正确,但我会尝试解释我究竟想在这里做什么。
Struct SampleClass {
enum Country: String {
case US(cityList: ChianCityList)
case Chian(cityList: USCityList)
}
enum ChianCityList {
case Bijing
case Shanghai
static var allCases = [.Bijing, .Shanghai]
}
enum USCityList {
case NewYork
case LA
static var allCases = [.NewYork, .LA]
var isCaptial:Bool
}
var country: Country
var allCityList: [?] {
switch self.conuntry {
case Chian
return CityList.allCases
case US
return USCityList.allCases
}
init(country: Country)
{
self.country = Country
}
}
现在我不知道 var 'allCityList' 的返回类型是什么。我希望它是通用的。其次,我不想为每个枚举调用“allCases”。反正有没有让它更通用?这只是一个简单的例子,有很多这样的场景。就像'isCaptial'。我怎样才能使它更通用,以便根据我可以找到的国家/地区?
【问题讨论】:
-
我知道这是一个学习练习,但您永远不会使用枚举来编写一长串名称。
-
为什么不使用枚举而使用结构体?
-
该结构将仅具有代表单个城市的属性。实际的城市列表将来自数据文件或数据库。该列表不会被硬编码到您的代码中。