zoukankan      html  css  js  c++  java
  • NS_ENUM和NS_OPTIONS宏

    枚举的宏定义 

    一、简介  
    NS_ENUM和NS_OPTIONS宏提供了一种简明、简单的方法来定义基于C语言的枚举和选项。 这些宏提高了Xcode中的代码完成性,并明确指定了枚举和选项的类型和大小。 此外,此语法以一种方式来声明枚举,该方式由旧编译器正确地计算,并且由更新的编译器来解释底层类型信息。 使用NS_ENUM、NS_OPTIONS宏定义枚举,有助于定义枚举的名称和类型; 
    如果需要以按位或操作来组合的枚举都应该使用NS_OPTIONS宏;若枚举不需要互相组合,可以使用NS_ENUM来定义 
    二、例子 
    (1)如果使用枚举定义UITableViewCellStyle,可以使用NS_ENUM宏来改写 
    enum{ 
    UITableViewCellStyleDefault, 
    UITableViewCellStyleValue1, 
    UITableViewCellStyleValue2, 
    UITableViewCellStyleSubtitle, 
    }; 
    typedef NSInteger UITableViewCellStyle; 
    改写版 
    typedef NS_ENUM(NSInteger,UITableViewCellStyle){

    UITableViewCellStyleDefault,
      UITableViewCellStyleValue1,
      UITableViewCellStyleValue2,
      UITableViewCellStyleSubtitle,

    }

    (2)使用枚举定义的的一组位掩码。可以使用NS_OPTIONS来改写 
    enum{

    UIViewAutoresizingNone                         =0,
    UIViewAutoresizingFlexibleLeftMargin     =1<<0,
    UIViewAutoresizingFlexibleWidth             =1<<1,
    UIViewAutoresizingFlexibleRightMargin   =1<<2,
    ……


    使用NS_OPTIONS来改写 
    typedef NS_OPTIONS(NSInteger,UIViewAutoresizing){

    UIViewAutoresizingNone                         =0,
    UIViewAutoresizingFlexibleLeftMargin     =1<<0,
    UIViewAutoresizingFlexibleWidth             =1<<1,
    UIViewAutoresizingFlexibleRightMargin   =1<<2,
    ……

    }

  • 相关阅读:
    记swoole数据库连接池消失问题的解决方式
    表格逻辑的几个想法
    Java代码实现热部署
    一个接口代理demo
    thinkphp5 关于跨域的一些坑
    CoSky-Mirror 就像一个镜子放在 Nacos、CoSky 中间,构建一个统一的服务发现平台
    CoSky 高性能 服务注册/发现 & 配置中心
    Govern Service 基于 Redis 的服务治理平台
    Govern EventBus
    mysql中查看视图代码
  • 原文地址:https://www.cnblogs.com/feng9exe/p/10083578.html
Copyright © 2011-2022 走看看