iOS开发系统一些常见的宏

来源:互联网 发布:excel中删除筛选数据 编辑:程序博客网 时间:2024/04/28 11:22

1、NS_FORMAT_FUNCTION(1,2NS_FORMAT_FUNCTION 展开为一个方法 __attribute__,它会告诉编译器在索引1处的参数是一个格式化字符串,而实际参数从索引2开始。这将允许编译器检查格式化字符串而且会像 NSLog() 和 -[NSString stringWithFormat:] 一样输出警告信息。


2、NS_REQUIRES_NIL_TERMINATION 展开为一个方法 一般后面有一个nil 比如 初始化 UIAlertView 后面就有一个 NS_REQUIRES_NIL_TERMINATION


3、NS_BLOCKS_AVAILABLE 这是一个 条件  判断Block块是否有用  #if NS_BLOCKS_AVAILABLE 中间写代码  #endif


4、NS_AVAILABLE(10_5,2_0) 前面10_5代表Mac系统,后面2_0代表iOS系统,它会告诉编译器该方法在xos10.5及以上和iOS2.0及以上可以使用,如果系统的版本低于提示版本,程序在编译时就会crash。跟在方法后面

     NS_AVAILABLE_IOS(6_0)  6_0代表iOS系统,它会告诉编译器该方法在iOS6.0及以上可以使用,如果系统的版本低于提示版本,程序在编译时就会crash。跟在方法后面


5、NS_ENUM_AVAILABLE(10_5, 2_0) 前面10_5代表Mac系统,后面2_0代表iOS系统,它会告诉编译器该枚举在xos10.5及以上和iOS2.0及以上可以使用,如果系统的版本低于提示版本,程序在编译时就会crash。跟在枚举后面

  NS_ENUM_AVAILABLE_IOS(7_0)7_0代表iOS系统,它会告诉编译器该枚举在iOS7.0及以上可以使用,如果系统的版本低于提示版本,程序在编译时就会crash。跟在枚举后面


6、NS_DEPRECATED_IOS(2_0,6_0前面2_0代表iOS系统,表示这个方法被引用时的iOS版本,后面6_0代表iOS系统,表示这个方法被弃用时的iOS版本。被弃用并不是指这个方法就不存在,它会告诉用户去使用新方法


7、DEPRECATED_ATTRIBUTE 它会告诉编译器该方法被弃用了

   DEPRECATED_MSG_ATTRIBUTE(s) 它会告诉编译器该方法被弃用了,后面s 代表提示

   __deprecated_msg(_msg) 它会告诉编译器该方法被弃用了,后面_msg代表提示



8、TARGET_IPHONE_SIMULATOR 它代表是模拟器

       TARGET_OS_IPHONE        它代表是真机


9、__IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_8_0 它判断当前设备系统是否大于iOS8

     __IPHONE_OS_VERSION_MIN_REQUIRED <= __IPHONE_7_0 判断当前设备系统是否小于iOS7



10、关于宏定义中的#和##的说明

#有两个作用:

①.将变量直接转化为相应字面量的C语言字符串 如a=10 #a会转换为“a”

②.连接两个C字符串


##的常用用处是连接,它会将在它之前的语句、表达式等和它之后的语句、表达式等直接连接

#define combine(a, b) a##b 比如:combine(10, 2222)  输出 102222





0 0