Swift 常用条件编译
自定义Flag
OC 中一般使用预编译宏来做条件编译,比如说添加个DEBUG =1 宏来区别测试版本和发布版本,写法一般是
#if DEBUG
由于很多公司喜欢搞同一个代码多个程序,所以为了更容易通过审核,咱们只要不停的换皮,而动态判断有些不妥,只好使用预编译宏来做区分,swift中也有这个编译方式写法和OC一样 ,不同在于或是 ||而不是|
- #if <condition>
- #elseif <condition>
- #else
- #endif
- //这个是swift写法
- if Note1 || Note2
系统Flag
系统相关
Function | Params |
---|---|
os()判断系统 | OSX,iOS,watchOS |
arch()判断cpu版本 | x86_64,arm,arm64,i386 |
- // os()只能检测系统类型,而无法检测系统的版本
- #if os(OSX)
- typealias Color = NSColor
- #elseif os(iOS)
- typealias Color = UIColor
- #endif
语言相关
- #if swift(>=4)
- // Swift 4 及以上
- #else
- // Swift 4 以下
- #endif
ios版本
- if #available(iOS 10.0, *) {
- // iOS 10 及以上
- }else{
- // iOS 10 以下
- }
有一个很重的地方需要注意的是,Swift的宏设置在 设置界面的 Other Swift Flags设置, OC的宏设置在 Preprocessor Macros中进行设置,这是个区别,设置在不同的地方