zoukankan      html  css  js  c++  java
  • iOS-----5分钟学会枚举的正确使用姿势-Enumeration宏

    前言

    Enum,枚举,相信大部分编程语言都有对应的枚举类型,功能可能有多有少,但是枚举最核心的功能是 “规范的定义代码中的状态、状态码、选项”。

    状态、状态码、选项

    什么是状态:同时只能出现一个值(状态码就是他的值),比如这个ScrollView里的枚举:

    什么是选项:同时可以出现一个或多个值:

    为什么要使用NS_ENUM(状态) 和 NS_OPTIONS(选项)?

    1. 苹果推荐。
    2. 大家都这样写。
    3. 其他的不好学。
    4. 以上的都不重要,看我的证明就行了

    状态的表示姿势

    错误姿势

    为什么这样做不好:

    1. 宏定义没有类型约束,只是单纯的替换。
    • 可读性较差。
    • 可以用int也可以用UIInteger来接收。

     

    正确姿势

    用起来就是这样的:

    这样枚举解决了上面1和2的缺点,但是第3点还是没有解决,我依然可以这样搞:

    完美姿势

    NS_ENUM是枚举在Objective-C中的”升级版”,改进后代码如下:

    代码很简单,不理解的话可以评论求解答。

    选项的使用姿势

    如果有一个”选项变量”要同时表示一个或者多个值肿么办?这时就得上我们的NS_OPTIONS了。
    比如有这样一个简单的例子:

    可以看到,我们这里的选项是用的位运算的方式定义的,这样的好处就是我们的选项变量可以这样来表示:

    “|”赋值完后,富帅的内心(内存)其实是长这样的:

    富帅的内心

     

  • 相关阅读:
    JAX-RS:@PathVariable @RequestParam @ModelAttribute等参数绑定注解详解
    关于重定向RedirectAttributes的用法
    数据库事务的四大特性以及事务的隔离级别
    电脑打开任务管理器出现卡顿
    IDEA: java.lang.IllegalArgumentException: Mapped Statements collection does not contain value
    git学习命令
    python 输入 与如何查看文档 小结
    python formatters 与字符串 小结 (python 2)
    Hibernate 配置文件与实体类
    python编码问题 与 代码换行问题
  • 原文地址:https://www.cnblogs.com/LifeTechnologySupporter/p/6616557.html
Copyright © 2011-2022 走看看