iOS开发系统一些常见的宏

1、NS_FORMAT_FUNCTION(1,2)

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

2、方法后面有一个nil

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

3、判断Block块是否有用

#if NS_BLOCKS_AVAILABLE
// 这里使用block
#endif

4、方法在Mac和iOS上使用的最低版本

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

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

5、枚举在Mac和iOS上使用的最低版本

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、判断当前设备是模拟器还是真机

#if TARGET_IPHONE_SIMULATOR
    // 模拟器
#elif TARGET_OS_IPHONE
    // 真机
#endif

9、判断当前设备系统

#if __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_8_0
    // 这里写设备系统大于8.0 以上的代码
#else
    // 这里写设备系统小于8.0以上的代码
#endif
#if __IPHONE_OS_VERSION_MIN_REQUIRED <= __IPHONE_7_0
    // 这里写设备系统小于7.0以上的代码
#else
    // 这里写设备系统大于7.0以上的代码
#endif

10、判断当前App是否是ARC模式

#if !__has_feature(objc_arc)
#error app is ARC only. Either turn on ARC for the project or use -fobjc-arc flag
#endif

11、判断当前App使用id或者instancetype

#ifndef W_INSTANCETYPE
#if __has_feature(objc_instancetype)
   #define W_INSTANCETYPE instancetype
#else
   #define W_INSTANCETYPE id
#endif
#endif

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

#有两个作用:

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

②.连接两个C字符串

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

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值