您的位置:首页 > 移动开发 > IOS开发

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

2017-03-07 07:23 597 查看
关于预编译宏 #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
{
//否则执行这里
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐