美文网首页iOS开发文集
枚举映射:枚举和字符串的映射,枚举和数字串的映射

枚举映射:枚举和字符串的映射,枚举和数字串的映射

作者: 十一岁的加重 | 来源:发表于2017-06-15 16:01 被阅读12338次

有时候也是坑了,会定义很多枚举,然后你还得根据这些不同的枚举来设置不同的显示,比如控制器title,之前一直写if else if 来判断,后面某一天看着这垃圾代码想吐。于是参考了网上的文章,改进了下。

实践过程:
一、定义枚举

/// 进入画页的类型
typedef NS_ENUM(NSInteger, PageType) {
    PageTypeAuthPhoto = 0,//!< 授权书
    PageTypeShopPhoto,//!< 店铺照片
    PageTypeAutomobileSalesQualificationRelatedDocuments,//!< 汽车销售资质相关文件
    PageTypeDrivingLicense,//!< 行驶证
    PageTypePayStrongInsurancePolicy,//!< 交强险保单
    PageTypeCarInvoice,//!< 购车发票
};

二、创建一个C语言的字符串数组

static NSString  * const  PageTypeStringMapping[] = {
    [PageTypeAuthPhoto] = @"选择授权书",
    [PageTypeShopPhoto] = @"选择店铺照片",
    [PageTypeAutomobileSalesQualificationRelatedDocuments] = @"汽车销售资质相关文件",
    [PageTypeDrivingLicense] = @"行驶证",
    [PageTypePayStrongInsurancePolicy] = @"交强险保单",
    [PageTypeCarInvoice] = @"购车发票",
};

三、我们开始使用了

    self.title = PageTypeStringMapping[self.pageType];    

有时候我们也会根据不同的状态产生某种最大值。
比如上传图片页面,在不同的上传图片状态下,会有不同的最大值

static NSInteger const  PageTypeMaxChooseCountMapping[] = {
    [PageTypeAuthPhoto] = 10,
    [PageTypeShopPhoto] = 7,
    [PageTypeAutomobileSalesQualificationRelatedDocuments] = 10,
    [PageTypeDrivingLicense] = 5,
    [PageTypePayStrongInsurancePolicy] = 5,
    [PageTypeCarInvoice] = 5,
};

然后如果用if else if 来处理这个数值就麻烦了,不过现在好的,这样多简单快捷

    NSInteger maxPicNum = PageTypeMaxChooseCountMapping[self.pageType];

参考链接:
http://honglu.me/2015/04/24/iOS%E5%BC%80%E5%8F%91%E7%9A%84%E5%A5%87%E6%8A%80%E6%B7%AB%E5%B7%A7/

相关文章

  • 枚举映射:枚举和字符串的映射,枚举和数字串的映射

    有时候也是坑了,会定义很多枚举,然后你还得根据这些不同的枚举来设置不同的显示,比如控制器title,之前一直写if...

  • 2019-08-06 go protocolbuffer

    Go protobuf生成器将枚举名称映射到值(反之亦然).您可以使用此映射将字符串转换为枚举值

  • BaseEnums封装和数据库类型自动转换

    需求背景对项目中的枚举和数据库表中自动转换映射。(存放枚举转换为int,读取int转换为枚举) 说明: 在开发一些...

  • Java集合(八)--EnumMap简析

    用于枚举类型键的专用Map实现。 EnumMap映射中的所有键必须来自创建映射时显式或隐式指定的单个枚举类型。 枚...

  • typescript学习-枚举

    一. 枚举 枚举在JavaScript中是运行时存在的对象,成员和成员值存在互相映射的关系 以下几种情况中,枚举成...

  • ts 枚举类型

    ts 枚举类型 常用于数据的映射 默认枚举默认的情况下,默认的情况下第一项索引是 '1',逐渐递增,可正反映射 赋...

  • 反向映射

    枚举类型被编译成一个对象,它包含了正向映射( name -> value)和反向映射( value -> name...

  • XmlRootElement JAXB注解

    [XmlRootElement JAXB注解] XmlRootElement: 将类或枚举类型映射到 XML 元素...

  • [智能合约]:类型03 枚举,结构体和映射

    接下来看Solidity剩下的三种变量的类型:枚举,结构体和映射。 1.枚举 枚举是一个自定义的整型,有一种给数字...

  • enum -> PartitionByFileMap

    根据用户定义的枚举值与分片节点映射文件,直接定位目标分片。 用户在rule.xml中配置枚举值文件路径和分片索引是...

网友评论

    本文标题:枚举映射:枚举和字符串的映射,枚举和数字串的映射

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