OC基本功(三)使用枚举

1.声明枚举类型Direction

#import <Foundation/Foundation.h>

// 声明枚举类型
enum Direction {up, down, left = 10, right};

int main(int argc, const char * argv[])

其中up = 0, down = 1, left = 10, right = 11。


2.声明Direction变量d

        // 声明枚举类型变量d,并赋值right
        enum Direction d = right;
        NSLog(@"%d", d);

为d赋值right,此时d的值为11。

可以用枚举中的常量值或整数值来判断d的值:

        if (d == 0) {
            NSLog(@"up");
        }
        else if (d == 1) {
            NSLog(@"down");
        }
        else if (d == 10) {
            NSLog(@"left");
        }
        else if (d == 11) {
            NSLog(@"right");
        }
        else {
            NSLog(@"Not matched");
        }
        
        if (d == up) {
            NSLog(@"%d", up);
        }
        else if (d == down) {
            NSLog(@"%d", down);
        }
        else if (d == left) {
            NSLog(@"%d", left);
        }
        else if (d == right) {
            NSLog(@"%d", right);
        }
        else {
            NSLog(@"Not matched");
        }


控制台输出:

2014-02-02 13:33:23.138 enum[1130:303] 11
2014-02-02 13:33:23.139 enum[1130:303] right
2014-02-02 13:33:23.140 enum[1130:303] 11

3.如果要定义一个全局变量,而又要将对应的整数值和特殊的常量值联系起来,例如上面的11对应right,此时可以使用枚举类型。


4.枚举类型的枚举值可以作为常量值使用,如:

        NSUInteger d = up;
        NSLog(@"%lu", (unsigned long)d);

但是,如果两个枚举类型在定义时存在有枚举值相等:

// 声明枚举类型
enum Direction {up, down, left = 10, right};

enum Direction2 {up, down2, left2 = 10, right2};


就会出现错误:


对于Direction和Direction2枚举类型的枚举值up由于重定义,所以编译器会报错。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值