前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >熟悉OC--5:用枚举表示状态、选项、状态码

熟悉OC--5:用枚举表示状态、选项、状态码

作者头像
xy_ss
发布2023-11-22 08:17:55
1340
发布2023-11-22 08:17:55
举报
文章被收录于专栏:浮躁的喧嚣浮躁的喧嚣

枚举只是一种常量命名方式

  • 某种状态值可以使用枚举
代码语言:javascript
复制
typedef NS_ENUM(NSInteger,LoginState){
    LoginStateSuccess,
    LoginStateFail,
};
  • 在定义选项的时候,若这些选项可以彼此组合,各个选项之间可以通过按“按位或操作符”来组合,那么枚举值中可定义为2的幂
代码语言:javascript
复制
typedef NS_ENUM(NSInteger, UIInterfaceOrientation) {
    UIInterfaceOrientationUnknown            = 0,
    UIInterfaceOrientationPortrait           = 1 << 0,
    UIInterfaceOrientationPortraitUpsideDown = 1 << 1,
    UIInterfaceOrientationLandscapeLeft      = 1 << 2,
    UIInterfaceOrientationLandscapeRight     = 1 << 3,
}

- (UIInterfaceOrientation)supportedInterfaceOrientationsForWindow:(nullable UIWindow *)window{
    return UIInterfaceOrientationLandscapeLeft | UIInterfaceOrientationLandscapeRight;
}
  • 在switch中使用枚举来定义状态机,最好不要用default,如果使用default,当枚举中添加一个值,编译器不会发出警告,但是switch中不加default,编译器会有警告提示信息
代码语言:javascript
复制
typedef NS_ENUM(NSInteger,LoginState){
    LoginStateSuccess,
    LoginStateFail,
};

- (void)change:(LoginState)state{
    switch (state) {
        case LoginStateFail:
            break;
        case LoginStateSuccess:
            break;
    }
}
  • 重点
  1. 应该用枚举值来表示状态机的状态
  2. 多个选项可以同时存在,可以使用枚举类型,可以将各选项值定义为2的幂,以便通过按位或操作将其组合 3.处理switch语句中不要带有default分支,这样加入新枚举值之后,编译器会提示开发者

参考

Effective+Objective-C 2.0 编写高质量iOS与OS X代码的52个有效方法

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-07-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 枚举只是一种常量命名方式
  • 参考
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档