OC中枚举关联值

作者: 番茄炒西红柿啊 | 来源:发表于2018-07-11 15:33 被阅读147次

相较于oc中的枚举,swift中的枚举有个rawValue,即关联值的存在.这样方便了枚举的定义,也使枚举的定义不在局限于整型.

  • 比如定义一个string类型的枚举,以及获取关联值,如下:
enum SwiftEnum: String {
    case red = "redType"
    case white = "whiteType"
    case black = "blackType"
}

let type = SwiftEnum.black
 _ = type.rawValue // "blackType"
  • oc中枚举定义如下:
typedef NS_ENUM(NSInteger, TestType) {
    TestTypeDefault = 1,
    TestTypeWhite,
    TestTypeBlack
};

能否像swift那样给每个枚举也关联一个关联值呢.答案当然是可以的.语法格式如下:

// 关联一个NSString类型的关联值
NSString *const TestTypeDescription[] = {
    [TestTypeDefault] = @"default",
    [TestTypeWhite] = @"white",
    [TestTypeBlack] = @"black"
};

 TestType type = TestTypeBlack;
 NSString *description = TestTypeDescription[type];
 NSLog(@"%ld, %@", (long)type, description);
// 3, black

tips: 个人觉得这个功能还是挺好的,某些时候能够用到,挺方便的.

相关文章

  • Swift与OC的语法简单对比(常用语法二)

    20- 枚举,枚举原始值,枚举相关值,switch提取枚举关联值 Swift枚举: Swift中的枚举比OC中的枚...

  • iOS-Swift-枚举

    Swift中的枚举比OC中的枚举更强大。 一. 枚举的基本用法 二. 关联值(Associated Values)...

  • OC中枚举关联值

    相较于oc中的枚举,swift中的枚举有个rawValue,即关联值的存在.这样方便了枚举的定义,也使枚举的定义不...

  • swift语法记录-之枚举

    枚举的基本用法 在C,OC中,枚举就是整形,0,1,2,3...在swift中的基本用法 关联值(Associat...

  • Swift 5 枚举

    枚举 关联值: 枚举的成员值和其他类型的值关联储存,存储在枚举变量中 原始值: 枚举成员使用相同的默认值预先对应,...

  • 七、枚举类型 可选项

    枚举 枚举基本用法 不同于C/OC,枚举成员不会分配默认的整数值当变量已确定为枚举类型,再次赋值可省略 枚举关联值...

  • Swift 枚举,结构体,类

    枚举(enum) 枚举的成员类型 相对于OC的枚举来说.Swift中的枚举功能要更加强大 OC中枚举值只能是int...

  • Swift - 递归枚举

    个人理解 递归枚举是拥有另一个枚举作为枚举成员关联值的枚举,实际上就是Swift中枚举关联值的特性和递归算法在Sw...

  • 八、枚举

    枚举为一组相关的值定义了任意类型的关联值存储到枚举成员中。 1.定义和创建 2.枚举匹配 3.关联值 4.原始值(...

  • Swift枚举熟练运用必备知识

    Swift中的枚举有原始值和关联值,其使用范围相比OC来说多了很多,因此也更复杂,需要我们花更多的时间来学习它,本...

网友评论

    本文标题:OC中枚举关联值

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