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的build configurations是如何支持条件编译的?

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

Benchmarking Performance of OpenStack Swift Configurations

https://www.mirantis.com/blog/openstack-swift-configurations-performance-benchmarking/ If you’ve s...

Oracle Validated Configurations 安装使用 说明

一.OracleValidated Configurations 说明Oracle 官网有一个对应的FAQ说明,链接如下:FAQ - Oracle Validated Configurationsht...

GStreamer SDK 1.0 Build Via Cerbero

GStreamer SDK 1.0 Build Via Cerbero 粗略列出对Cerbero脚本的理解,希望能对他人有所帮助。具体代码解析暂未整理,如本篇确能对你有所帮助,且需要进一步了解,可...

Build Hyperledger Fabric 1.0

1.jason@ubuntu:~/docker$ sudo apt install docker.io E: Could not get lock /var/lib/dpkg/lock - open ...

Build iOS Database Apps with Swift and SQLite

  • 2016年11月19日 11:11
  • 8.56MB
  • 下载

1.0 Swift的作者介绍,出身介绍

/**          swift 作者:克里斯·拉特纳, Chris Lattner,1978年-                    LLVM项目的主要发起人与作者之一,Clang编译器...

IOS Apps 开发(Swift)(3)——Build a Basic UI(1)

前言:网上一直没有找到用Swift开发IOS的好的教程,所以找了官网的文档翻译一下算了。如有错误欢迎指正。 原文链接:Build a Basic UI ————————————————————————...
  • mcf171
  • mcf171
  • 2016年02月24日 20:51
  • 784
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Swift1.0的Build Configurations如何使用?
举报原因:
原因补充:

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