美文网首页
iOS高效开发--正确使用枚举

iOS高效开发--正确使用枚举

作者: Little_Shaun | 来源:发表于2017-06-12 14:08 被阅读38次

//返回字符串所占用的尺寸.
-(CGSize)sizeWithFont:(UIFont *)font WithStr:(NSString *)content AndmaxSize:(CGSize)maxSize
{
NSDictionary *attrs = @{NSFontAttributeName : font};
return [content boundingRectWithSize:maxSize options:NSStringDrawingUsesLineFragmentOrigin attributes:attrs context:nil].size;
}

一、状态和选项的区别(states and options)
在使用enum之前,我认为,区分一下状态和选项的概念是很必要的。

(1)状态
同时只能有一种,如“YES”,"ERROR",不可能同时存在OK和Error.
(2)选项
同时可以有一种或一种一上,如App可以同时支持横屏和竖屏,横屏和竖屏在这个时候就是“屏幕方向”的两种不同选项

接下来,我们看看,如何用枚举定义状态和选项。

二、enum与状态(states)
不好的做法,我们经常看到

#define STATE_OK 0
#define STATE_ERROR 1
#define STATE_UNKNOW 2

//直接用int型变量接收
int STATE = STATE_UNKNOW;

这种做法有如下的”不恰当“:
(1)宏定义没有类型约束,只是单纯的替换
(2)无法限制状态的所有情况,如果,将STATE 赋值成3,程序就会出错,找不到匹配的状态,编译器会对“STATE = 3”,提出警告。

正确的做法:

typedef enum _TTGState{
    TTGStateOK = 0,
    TTGStateError,
    TTGStateUnkonw
}TTGState;

使用如下:

- (void)dealWithState:(TTGState)state
{
    switch (state) {
        case TTGStateOK:
            NSLog(@"1");
            break;
        case TTGStateError:
            NSLog(@"2");
            break;
        case TTGStateUnkonw:
            NSLog(@"3");
            break;
        default:
            break;
    }
}

相关文章

  • ios高效开发-正确的使用枚举(Enum)

    ios高效开发-正确的使用枚举(Enum)

  • iOS高效开发--正确使用枚举

    //返回字符串所占用的尺寸.-(CGSize)sizeWithFont:(UIFont *)font WithSt...

  • ios高效开发

    ios高效开发-正确的使用枚举(Enum) Objective-C位运算符 堆栈的工作原理 沙盒目录结构解析 Ob...

  • iOS 位枚举

    在 iOS 开发中,我们使用系统的枚举定义的时候,经常可以看到位枚举: 需要掌握位枚举,我们需要先了解位运算 和 ...

  • IOS中的动画枚举-----UIViewAnimationOpt

    这个枚举属于UIViewAnimation。在ios开发中,我们经常使用的函数是 [UIView animateW...

  • 【iOS开发】枚举的使用

    一、枚举类型、enum枚举类型 从枚举定义来看,NS_ENUM和NS_OPTIONS本质是一样的,仅仅从字面上来区...

  • 断言

    在iOS开发中,可以使用宏NSAssert()在程序中进行断言处理。NSAssert()使用正确,可以帮助开发者尽...

  • Swift和Objective-C中的类型

    iOS开发中使用的类型 Foundation中的类型可以分为三类: NSInteger等,在C语言中,枚举类型、字...

  • iOS开发中定义枚举的正确姿势(NS_ENUM VS enum)

    iOS开发中枚举也是经常会用到的数据类型之一。最近在整理别人写的老项目的时候,发现枚举的定义使用了多种方式。 方式...

  • iOS 枚举

    iOS 枚举 使用typedef NS_ENUM 用法: 常用三种方式,普通使用推荐枚举NS_ENUM方式,如果需...

网友评论

      本文标题:iOS高效开发--正确使用枚举

      本文链接:https://www.haomeiwen.com/subject/cwbifxtx.html