工程中常用的几种宏判断

注:

#if和#ifdef的区别:

#if 后面接的是宏。

#ifdef 是判断有没有定义这个宏。

1、如果是Debug状态

#if DEBUG

#else

#endif

2、如果不是在模拟器上运行

#if !TARGET_IPHONE_SIMULATOR

#endif

3、

#if TARGET_IPHONE_SIMULATOR
 
#elif TARGET_OS_IPHONE
   
#endif

4、如果手机系统版本小雨5.0

#if __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_5_0
#error 
#endif

5、在手机上运行并且系统版本大于等于4.0

#if TARGET_OS_IPHONE && __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_4_0

#endif

6、block的判断,这个是在4.0以后有的,当然也可以不进行判断,因为现在大多数都4.0以后了。

#if NS_BLOCKS_AVAILABLE

#endif

7、判断是否支持arc

#if !__has_feature(objc_arc) 

#endif
原文地址:https://www.cnblogs.com/hanyutong/p/4797130.html