【发布时间】:2015-02-10 09:38:42
【问题描述】:
我想做这样的事情......
enum SpriteFrames:Int {
case N
case NE
case E
case SE
case S
case SW
case W
case NW
}
enum DroidSpriteFramesIdle:Int {
var image:String {
switch self {
case N:
return "droid_n"
case NE:
return "droid_ne"
case E:
return "droid_e"
case SE:
return "droid_se"
case S:
return "droid_s"
case SW:
return "droid_sw"
case W:
return "droid_w"
case NW:
return "droid_nw"
}
}
}
enum DroidSpriteFramesMove:Int {
var image:String {
switch self {
case N:
return "droid_move_n"
case NE:
return "droid_move_ne"
case E:
return "droid_move_e"
case SE:
return "droid_move_se"
case S:
return "droid_move_s"
case SW:
return "droid_move_sw"
case W:
return "droid_move_w"
case NW:
return "droid_move_nw"
}
}
}
...其中DroidSpriteFramesIdle 和DroidSpriteFramesMove 是SpriteFrames 的子类,或者将其作为协议或类似的东西遵守。基本上,我希望有很多枚举,它们都具有相同的方向案例列表(N、NE、E 等),但对于这些常见方向有自己的唯一值列表。我不想使用类,因为这会导致在分配时创建实例。虽然对替代想法持开放态度,但我对 Swift 还是很陌生。谢谢。
【问题讨论】:
标签: ios swift enums protocols subclass