美文网首页iOS开发
iOS 巧妙使用编译宏定义让代码在不同的情况下执行

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

作者: Pandakingli | 来源:发表于2017-03-07 07:22 被阅读44次

    关于预编译宏 #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
    {  
            //否则执行这里  
    }
    

    相关文章

      网友评论

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

        本文链接:https://www.haomeiwen.com/subject/iuppgttx.html