iOS:#ifdef的使用

来源:互联网 发布:中国人没有信仰知乎 编辑:程序博客网 时间:2024/06/05 07:05

此方法能用好,可以在demo中起到至关重要的作用,此处有三种情况

一、

#ifdef XXXX  //...demo块1...#else  //...demo块2...#endif

此处实现机制是:如果xxxx编译过,即实现demo块1,否则为demo块2,#endif为结束。

#ifndef _XXXX   //...程序段1... #else   //...程序段2... #endif

此处实现机制是:当xxxx未编译过时实现demo块1,否则实现demo块2,与上面相反

实现机制方法一般是在pch文件里定义好,即:

#define XXXX

我的使用情景是:我的项目为双端,即客户端a和b,某些通用类的接口不一样,但是其他处理方式一模一样,所以使用此方法可以方便的进行判断,即在客户端a中的pch中定义xxxx,然后即可。

但是Xcode6之后苹果就不建议使用pch了。


二、

#define NUM  .............  .............  .............#ifdef NUM   //……demo块1……#else    //……demo块2……#endif

即:宏定义一个NUM,如果NUM有定义,则执行demo块1,否则执行demo块2,#endif为结束

我的使用情景是:根据在前一页面的选择不同,push到下一界面视图展现前后顺序不一样,所以我直接传值过去,判断此值内容然后根据内容是否给NUM定义。

三、

#if integerValue(常量)   //...demo块1...#else  //...demo块2...#endif 

此处实现机制是:如果integerValue有值(非零非空),则执行demo块1,否则执行demo块2

我的使用情景:在demo块1中写入测试demo,使用时给integerValue赋值,不用为nil或0


1 0