iOS 巧妙使用编译宏定义让代码在不同的情况下执行

关于预编译宏 #ifdef #else #endif

#ifdef ****flag  
    //代码1  
else  
    //代码2  
#endif

意思是 如果标识符****flag已被#define命令定义过,则对代码1进行编译,否则对代码2进行编译。

同时也有#ifndef,则与#ifdef刚好相反。

(1)OPTIMIZE :
用于release和debug的判断,当选择了OPTIMIZE 时,可以让代码在release时执行,在debug时不执行。
示例如下:

#ifndef __OPTIMIZE__  

    //这里执行的是debug模式下  

else  

    //这里执行的是release模式下  

#endif

(2)i386x86_64 :用于模拟器环境和真机环境的判断。满足该条件的代码只在模拟器下执行。示例代码如下:

#if defined (__i386__) || defined (__x86_64__)  
    //模拟器下执行  
#else  
    //真机下执行  

#endif

(3)__IPHONE_OS_VERSION_MAX_ALLOWED :当前编译的SDK版本,可以与__IPHONE_9_0等宏定义进行比较,进行不同版本下代码的执行。示例如下:

if (__IPHONE_OS_VERSION_MAX_ALLOWED == __IPHONE_9_0) 
{  
        //如果当前SDK版本为9.0是执行这里的代码  
}
else
{  
        //否则执行这里  
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值