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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容