Swift 按位枚举说明及用法

我们知道OC中有按位枚举这种数据类型,具体说明以及用法可以参考:
http://www.jianshu.com/p/600402ed85df
这里不做说明

目录
1 举例说明如何识别普通枚举和按位枚举
2 Swift中如何使用按位枚举

�1 � 举例说明如何识别普通枚举和按位枚举

//普通枚举
public enum UIControlContentHorizontalAlignment : Int {

case center

case left

case right

case fill
}
//按位枚举
public struct UIControlState : OptionSet {

public init(rawValue: UInt)

public static var normal: UIControlState { get }

public static var highlighted: UIControlState { get } // used when UIControl isHighlighted is set

public static var disabled: UIControlState { get }

public static var selected: UIControlState { get } // flag usable by app (see below)

@available(iOS 9.0, *)
public static var focused: UIControlState { get } // Applicable only when the screen supports focus

public static var application: UIControlState { get } // additional flags available for application use

public static var reserved: UIControlState { get } // flags reserved for internal framework use

}
最大的区别是"声明格式"不同
普通枚举声明格式:
public enum 枚举名称: 枚举值类型 {
case 枚举值1
case 枚举值2
....
}
按位枚举声明格式:
public struct 枚举名称 : OptionSet {
public static var 枚举值1: 枚举名称 { get }
public static var 枚举值2: 枚举名称 { get }
...
}
2 Swift中按位枚举的使用方法: 用中括号括起来,中间用逗号分隔(类似OC中的数组,在Swift中叫元组)

例:


Paste_Image.png

但是需要注意的是: 此用法不得先定义变量,然后传值,必须要在使用按位枚举的地方直接将枚举值用中括号括起来,用逗号分隔开!
不然会报类型不匹配的错误
例:

Paste_Image.png

正确代码为:

Paste_Image.png

你可能感兴趣的:(Swift 按位枚举说明及用法)