enum BluetoothState{ case ON,OFF,UNSupport } enum BluetoothState{ case ON case OFF case UNSupport }
var currentState = BluetoothState.ON在第一次赋值之后,由于swift具有类型推断,所以第二次的调用可以省略枚举名称
currentState = .OFF二、枚举相关值
enum personID{ case NumID(Int,Int) case StrID(String) }定义一个枚举,公司有两种方式区分一个人,分别是(部门编号,成员编号)和工号
var expPerson = personID.StrID("84366") switch expPerson { case .NumID(let first,let second): println("from string") case .StrID(let num): println("from int int") }三、原始值
enum Num:Int{ case zero = 0 case one case two }访问原始值
let rawData = Num.zero.toRaw()也可以通过原始值访问枚举
let oneNum = Num.fromRaw(2)四、计算属性方法实例简析
应On,1对应Off,2对应Unsupport,那么原始值是有意义的。否则是不需要设原始值的。
为枚举添加方法
eunm HwcNum:Int{ case zero = 0,one,two,three,four,five,six,seven,eight,nine func descriptionInString()->String{ switch self{ case .zero: return "zero" case .one: return "one" default: return "Other" } } }
扩展枚举
extension HwcNum{ subscript (Index:Int) -> String { get { switch Index{ case 0: return "Zero" case 1: return "One" default: return "Other" } } } }
这样扩展之后,enum就额外的支持下标访问
这样使用这个枚举
var expNum = HwcNum.zero var zeroDescription = expNum.descriptionInString() var indexString = expNum[0]
这样使用,当然实际过程中这么扩展没什么意义,仅仅做个参考