Swift枚举

来源:互联网 发布:淘宝店铺出租转让 编辑:程序博客网 时间:2024/05/16 17:33
在Swift中枚举类型是一等类型,它采用了很多传统上只被类所支持的特征。
例如1、计算型属性(computed properties),用于提供关于枚举当前值的附加信息。
2、实例方法(instance methods)用于提供和枚举所代表的值相关联的功能。
3、构造器来提供一个出事成员值
4、遵守协议(protocols)提供标准的功能
5、扩展。

枚举的定义
eg enum  SomeEumeration{

case North
case South
case East
case West

}
case表明新的一行成员值将要开始定义
和C、OC不一样,Swift的枚举成员在被创建时·不会被赋予一个默认的整数值。
多个成员可以出现在同一行上,用,隔开
每个枚举定义了一个全新的类型。像Swift中的其他类型一样,名字以一个大写字母开头
1、var directionToHead = CompassPoint.West
directionToHead = .East
switch directionToHead {
case .North
case .Soutrh
case .East
case .West
}
当考虑枚举成员时,一个Switch一定要全面。如果忽略了其中一个,以上代码将不会正确运行
当不需要匹配每一个成员的时候可以使用default

关联值(Associated Values)
可以定义Swift的枚举存储任何类型的关联值,如果需要的话每个成员的数据类型可以是各不相同的。与标签联合相似
enum barcode{
case UPCA(Int,Int,Int)//barcode枚举类型可以是UPCA的关联值
}

原始值
作为关联值的替代,枚举成员可以被默认值(原始值)预先填充,其中这些原始值具有相同的类型
对于一个特定的枚举成员它的原始值始终是相同的。
原始值可以是字符,字符串,数值型。在枚举中,每个原始值必须是唯一的。
如果整型作为原始值,当其他枚举成员没有值时,他们会自动递增
enum Planet: Int {
case Mercury = 1, Venus, Earth, Mars, Jupiter, Saturn, Uranus, Nep
}
使用枚举成员的toRow方法可以访问该枚举成员的原始值
SomeEumeration = SomeEumeration.East.toRow()//访问原始值
使用fromRow试图找到具有特定原始值的枚举成员
let possiblePlanet = SomeEumeration.fromRow(7)//找到枚举值为7的枚举成员(返回一个可选值)


1 0