三、给枚举成员赋值
在Swift中声明枚举时,是可以给每个枚举成员赋一个值的,下面的City枚举的成员就被指定了一个值,如下所示:
//给枚举赋值
enum City: String{
case Beijing = "北京"
case ShangHai = "上海"
case GuangZhou = "广州"
case ShengZhen = "深圳"
}
使用枚举变量的rawValue可以获取给每个枚举成员赋的值,代码如下:
//定义枚举变量并赋值
var myInCity: City = City.Beijing
//获取枚举变量的值
var myInCityString: String = myInCity.rawValue;
println(myInCityString) //输出:北京
四、通过枚举成员的值给枚举变量赋值
什么是通过枚举成员的值给枚举变量赋值呢?举个例子,以上面的枚举类型City为例,假如我们只知道一个枚举成员的值是“北京”,而不知道“北京”这个值对应的枚举成员是"Beijing", 在Swift中是可以通过“北京”这个值给枚举变量赋一个枚举成员“Beijing”的。
是不是有点绕啊,来点实例吧,下面就是通过枚举成员的原始值给枚举变量赋值的代码
//通过枚举成员的值,来给枚举成员赋值
var youInCity: City? = City(rawValue: "北京");
为啥我们的youInCity是可选值类型的呢?原因很简单,我们不确定枚举City中的成员的值是否含有“北京”,枚举变量youInCity的值是不确定的,所以喽是可选类型的,下面我们就取出youInCity的值,首先判断youInCity是否为City.Beijing, 如果是,说明赋值成功就输出值。
//取出youInCity中的值
if youInCity == City.Beijing {
var cityName: NSString = youInCity!.rawValue
println(cityName) //输出:北京
}
找一个枚举成员的值中不包含的字符串用来给枚举变量赋值,观察一下结果,下面的testCity的值打印出来为nil, 因为枚举中没有一个成员的值为“京”。
//传入一个枚举中没有的值
var testCity: City? = City(rawValue: "京");
// testCity为nil
println(testCity)
五、枚举值自增
好东西还是要保留的,在Swift中的枚举值如果是整数的话,第一个赋值后,后边的会自增的。关于枚举值自增就不多说了,直接看实例吧。








