在字典中引用嵌套枚举?
Reference a nested enum in a dictionary?
Swift 似乎不允许从字典中引用嵌套枚举。我可以简单地将枚举移出 class,这将解决问题,但我需要在另一个 class 下创建另一个枚举名称 Status。所以它需要是一个嵌套的枚举
class User {
enum Status: String {
case Alive = "alive"
case Dead = "dead"
}
}
var userStatuses = [User.Status: String]()
如果你使用 typealias
:
class User {
enum Status: String {
case Alive = "alive"
case Dead = "dead"
}
}
typealias Key = User.Status
var myDictionary = [Key: String]()
myDictionary[.Alive] = "something"
println(myDictionary[.Alive]!) // prints "something"
尝试非shorthand版本。
var statuses = Dictionary<User.Status, String>()
使用 shorthand 版本 [User.Status: String]()
时看起来像是一个错误,但非 shorthand 版本似乎工作正常。
Swift 似乎不允许从字典中引用嵌套枚举。我可以简单地将枚举移出 class,这将解决问题,但我需要在另一个 class 下创建另一个枚举名称 Status。所以它需要是一个嵌套的枚举
class User {
enum Status: String {
case Alive = "alive"
case Dead = "dead"
}
}
var userStatuses = [User.Status: String]()
如果你使用 typealias
:
class User {
enum Status: String {
case Alive = "alive"
case Dead = "dead"
}
}
typealias Key = User.Status
var myDictionary = [Key: String]()
myDictionary[.Alive] = "something"
println(myDictionary[.Alive]!) // prints "something"
尝试非shorthand版本。
var statuses = Dictionary<User.Status, String>()
使用 shorthand 版本 [User.Status: String]()
时看起来像是一个错误,但非 shorthand 版本似乎工作正常。