您的位置:首页 > 移动开发 > Swift

枚举之美(上)

2016-07-09 00:00 316 查看
摘要: 本文主要探讨枚举在c/oc/swift 中的用法。

枚举,是一个被命名的整型常数的集合, 它可以让我们的代码更具可读性!下面就来看看各语言中枚举的用法和区别:

枚举在C中的写法:

[code=language-objectivec]//定义星期枚举
enum weekday{
sun,
mon,
tue,
wed,
thu,
fri,
sat
};


枚举在OC中的写法:

oc和c是完全兼容的,所以在oc中写c的枚举当然也是可以的,但是oc本身有它自己的语言特性,所以尽量使用oc本身的属性 ,例如int对应的应该使用NSInteger,举例如下:

[code=language-objectivec]//车品牌 枚举
typedef NS_ENUM(NSInteger,LYCarBrand){
LYCarBrandFerrari,
LYCarBrandLamborghini,
LYCarBrandBMW,
};


枚举在swift中的写法:

[code=language-swift]//定义指南针方向枚举
enum CompassPoint {
case North
case South
case East
case West
}

//声明一个枚举变量
var cp = CompassPoint.South

如果已经声明枚举变量的类型,那么我们就就不用再写CompassPoint了,直接使用点语法,如下所示:

[code=language-swift]//声明一个枚举变量
var cp : CompassPoint
//重新赋值
cp = .South

如果遇到枚举名很长的情况下oc的代码就显得非常冗长,不易于阅读和编写,例如UIViewAutoresizing选项,使用OC的语法如下所示:

[code=plain]//使用或运算的时候代码显得冗长
view.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin;

而swift给我们提供了一种更简单的写法:

[code=language-swift]//给枚举间的 或运算 编写格式
contentView.autoresizingMask = [.LeftMargin,.RightMargin];
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  枚举 swift oc