美文网首页工作生活
Swift中的条件编译

Swift中的条件编译

作者: 盖小聂 | 来源:发表于2019-06-30 17:29 被阅读0次

1、条件编译
2、宏定义define

1、条件编译
  • Swift中没有宏定义的概念,因此我们不能使用#ifdef的方法来检查某个符号是否经过宏定义。但是为了控制编译流程和内容,Swift还是为我们提供了几种简单的机制来根据需求定制编译内容的。
    首先是#if这套编译标记还是存在的,使用的语法也和原来没有区别
#if <condition>

#elseif <condition>

#else

#endif

但是这几个表达式里的condition并不是任意的。Swift内建了几种平台和架构的组合,来帮助我们为不同的平台编译不同的代码。
方法os(),可选参数OSX,iOS
方法arch(), 可选参数x86_64, arm, arm64, i386

  • 对自定义的符号进行条件编译。为了使自定义的编译符号FREE_VERSION有效,我们需要在项目的编译选项中进行设置,在项目的Build Settings中,找到Swift Compiler-Custom Flags,并在其中的Other Swift Flags加上 -D FREE_VERSION就可以了。
2、宏定义define
  • Swift中没有宏定义。
  • Swift中将宏定义彻底从语言中拿掉了,并且Apple给了我们一些替代的建议:
    I、使用合适作用范围的let或者get属性来替代原来的宏定义值,例如很多Darwin中的C的define值就是这么做的:var M_PI: Double { get }
    II、对于宏定义的方法,类似的在同样作用域写成Swift方法。
    III、随着#define的消失,像#ifdef这样通过宏定义是否存在来进行条件判断并决定某些代码是否参与编译的方式也消失了。但是我们仍然可以使用#if并配合编译的配置来完成条件编译。

相关文章

  • Swift中的条件编译

    1、条件编译2、宏定义define 1、条件编译 Swift中没有宏定义的概念,因此我们不能使用#ifdef的方法...

  • Swift补基础之Selector、条件编译、编译标记、NSOb

    在swift中使用条件编译比较直接 例如 :在debug模式和release模式编译不同代码 在swift中判断i...

  • Swift:与OC混编

    目录一,条件编译二,KVO/KVC三,Swift调用OC四,OC调用Swift五,字符串六,多线程 一,条件编译 ...

  • swift条件编译

    在 C 系语言中,可以使用 #if 或者 #ifdef 之类的编译条件分支来控制哪些代码需要编译,而哪些代码不需要...

  • Swift 条件编译

    方法可选参数os()macOS, iOS, tvOS, watchOS, Linuxarch()x86_64, a...

  • Swift:条件编译

    应用场景 在项目工程中编写代码,但是需要对部分功能做区分处理(系统、设备等)。就需要使用系统的条件编译方式来处理。...

  • Swift条件编译

    一、 Flag if DEBUG let name = "name" print("实际内存大小", Memor...

  • 使用Web浏览器编译Swift代码,及Swift中的泛型

    使用Web浏览器编译Swift代码,及Swift中的泛型 使用Web浏览器编译Swift代码,及Swift中的泛型

  • Swift中的编译宏设定

    编译宏 Swift中的编译宏设定,是通过在Build Settings中,Other Swift Flags设定的...

  • Swift 条件编译(随笔)

    背景 在日常开发过程中,Debug 模式下经常需要输出一些日志,程序出现错误时,便于 bug查找和定位,但是在 R...

网友评论

    本文标题:Swift中的条件编译

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