Swift1.0的Build Configurations如何使用?

转载 2015年07月09日 16:51:43


       了解iOS系统的人都知道,iOS开发有两种基础语言,一种是沿用已久的Objective-C,一种是新出的Swift。

       姜还是老的辣,这话还是有一定的道理的,在使用swift1.0对iOS开发中,由于其对C语言支持没有Objective-C来得那么友好,所以无法像在Objective-C中那样自如而舒坦地使用预处理指令。

AD:

BuildConfigurations in Swift

 

        在使用Objective-C进行开发中,我们经常使用预处理指令来帮助我们根据不同的平台执行不同的代码,以让我们的代码支持不同的平台,如:

 

#ifTARGET_OS_IPHONE

 

#define MAS_VIEWUIView

 

#elifTARGET_OS_MAC

 

#define MAS_VIEWNSView

 

#endif

 

 

         在使用swift语言进行开发中,则使用的是build configurations(构建配置)来支持条件编译。Build configurations已经包含了字面量true和false,以及两个平台测试函数os()和arch()。

 

         其中os()用于测试系统类型,可传入的参数包含OSX, iOS, watchOS,所以上面的代码在swift可改成:

 

#if os(iOS)

typealiasMAS_VIEW = UIView

#elseif os(OSX)

typealiasMAS_VIEW = NSView

www.maiziedu.com

#endif

 

       但os()只能检测系统类型,而无法检测系统的版本,所以这些工作只能放在运行时去处理。

而arch()则主要是用于测试CPU的架构,可传入的值包括x86_64, arm, arm64, i386。需要注意的是arch(arm)对于ARM 64的设备来说,不会返回true。而arch(i386)在32位的iOS模拟器上编译时会返回true。

 

       如果我们想自定义一些在调试期间使用的编译配置选项,则可以使用-D标识来告诉编译器,具体操作是在”BuildSetting”–>“Swift Compiler-Custom Flags”–>“Other Swift Flags”–>“Debug”中添加所需要的配置选项。如我们想添加常用的DEGUB选项,则可以在此加上”-D DEBUG”。这样我们就可以在代码中来执行一些debug与release时不同的操作,如

 

#if DEBUG

let totalSeconds= totalMinutes

#else

let totalSeconds= totalMinutes * 60

#endif

 

一个简单的条件编译声明如下所示:

 

#if buildconfiguration

statements

#else

statements

#endif

        当然,statements中可以包含0个或多个有效的swift的statements,其中可以包括表达式、语句、和控制流语句。另外,我们也可以使用&&和||操作符来组合多个build configuration,同时,可以使用!操作符来对buildconfiguration取反,如下所示:

 

#if buildconfiguration && !build configuration

statements

#elseif buildconfiguration

statements

#else

statements

#endif

      需要提醒大家的一点就是,在运用swift开发ios系统时,条件编译语句必须在语法上是有效的,因为即使这些代码不会被编译,swift也会对其进行语法检查。


swift 1.0更新为2.0后的变化

很久没看swift。 println已经变成了print了。 定义属性不用现在也会有警告了。 字符串的长度从以前的count(str) 变成现在的str7.characters.count了。 字符串...
  • WiKi_Su
  • WiKi_Su
  • 2015年11月23日 17:39
  • 553

Eclipse中Run Configurations的具体用法

用法示例: 具体程序: 运行结果:Hello you Hello Spark Hello Hadoop Hello baby hello you hello me ----...
  • a2011480169
  • a2011480169
  • 2016年10月08日 14:42
  • 2069

Swift的build configurations是如何支持条件编译的?

在iOS开发中,大家习惯了用Objective-C,也清楚的知道其在各种不同情况下的编写方法,但对于近两年新出的swift语言的操作却略显生疏。        就拿“让代码支持不同平台怎么实现”的案...
  • lidiya007
  • lidiya007
  • 2015年07月16日 14:23
  • 674

Gradle用户使用指南

Gradle作为一种新的集成工具,关于Gradle的配置信息,多版本构建,签名,依赖导入,依赖多工程,测试等等build.gradle中配置信息,都在这里。...
  • xiaohanluo
  • xiaohanluo
  • 2017年05月23日 16:19
  • 2806

android studio gradle配置详解

什么是Gradle? Gradle 以module 来管理project,在Gradle 构建的Gradle project中通常包含application module(com.andro...
  • androidstar_cn
  • androidstar_cn
  • 2016年10月12日 23:29
  • 1718

eclipse External tools configurations

示例, 打开web项目的classes目录:   location填写: C:\WINDOWS\SysWOW64\explorer.exe working directory 不写东西 ar...
  • c370228492
  • c370228492
  • 2013年01月05日 10:38
  • 1522

hibernate 配置 configurations

一、通过加载配置文件hibernate.cfg.xml Configuration configuration = new Configuration().configure(); Service...
  • Tweeenty
  • Tweeenty
  • 2015年09月21日 15:43
  • 822

Android Studio - 详解build.gradle

AS中APP所有的配置尽在一个build.gradle文件中,打包的时候也是解析build.gralde文件来打包的,所以搞懂build.gradle文件是至关重要的,结构如下所示 ...
  • xx326664162
  • xx326664162
  • 2015年09月15日 10:57
  • 5679

Gogland IDE Run/Debug Configurations 配置说明

1.简介 Gogland 是 JetBrains 公司推出的 Go 语言集成开发环境。Gogland 同样基于 IntelliJ 平台开发,支持 JetBrains 的插件体系。目前正式版尚未发布。...
  • CMbug
  • CMbug
  • 2017年01月13日 10:55
  • 11443

关于studio中的Run/Debug Configurations不能运行的问题及解决方案

下面案列图: 如果你问题如图一样,那么就需要几个步骤就可以搞定了,下面看步骤: 步骤1: 如上图找到BuildVarits,就会弹出一个小框,如下图: ...
  • pengaianzhuo
  • pengaianzhuo
  • 2017年06月08日 18:25
  • 491
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Swift1.0的Build Configurations如何使用?
举报原因:
原因补充:

(最多只允许输入30个字)