Swift 常用条件编译

在 Swift 中,条件编译语句必须在语法上是有效的,因为即使这些代码不会被编译,Swift 也会对其进行语法检查。

自定义 Flag

OC 中一般使用预编译宏来做条件编译,比如添加一个 DEBUG 预编译宏,然后使用 #ifdefine 或者 #if DEBUG 来判断是否是调试状态

Swift 中没有宏的概念,但是提供了 Active Compilation Conditions ,这个设置可以替代之前预编译宏的方式,来做自己的条件编译

#if <condition>
#elseif <condition>
#else
#endif

常用内置参数

系统相关

Function Params
os() OSX, iOS
arch() x86_64, arm, arm64, i386

// os()只能检测系统类型,而无法检测系统的版本
#if os(OSX)
    typealias Color = NSColor
#elseif os(iOS)
    typealias Color = UIColor
#endif

语言相关

检查语言版本

#if swift(>=3.2)
    // Swift 3.2 及以上
#else
    // Swift 3.2 以下
#endif

检查 API 版本

if #available(iOS 9.0, *) {
    // iOS 9 及以上
}else{
    // iOS 9 以下
}

猜你喜欢

转载自blog.csdn.net/kaiyuanheshang/article/details/78862382
今日推荐