Swift下如何使用#if条件编译

一、OC使用条件编译

OC中可以使用宏定义,再使用条件编译

#define USER_CUSTOM

使用
#if USER_CUSTOM
//其他代码
#endif

二、Swift使用条件编译

Swift 不像ObjectC一样,通过定义一个变量,然后使用**#if #endif** 方法。swift需要设置一下才能使用。

  1. 点击项目targets,点击build setting,搜索** Swift Compiler - Custom Flags设置, Active Compilation Conditions**
  • Debug和Release 可以设置不同的值
    在这里插入图片描述
  1. 设置好后就可以使用了
func test() {
	#if CUSTOM
    print("custom")
    #endif
}

三、swift中常用的条件编译

1. 判断系统

使用方法: os(Platform)
PlatForm参数可选值为:macOS , iOS ,watchOS,tvOS,Linux,Windows

2. 判断系统架构

使用方法:arch(Arch)
Arch 参数可选值为:i386, x86_64, arm, arm64。

3. 判断swift版本

使用方法:swift(version)

version 参数的值为对某个 swift 版本的大小判断,可以使用 >= 或 <,后跟版本号。比如:

#if swift(>=5)
// 大于等于 swift 5.0 的版本
#endif

#if swift(>=4.2) 
// 大于等于 swift 4.2 的版本
#endif

4. 判断编译器版本

使用方法:compiler(version)
version 参数的值为对某个编译器版本的大小判断,可以使用 >= 或 < 后跟版本号。比如:

#if compiler(>=5)
// 使用 Swift 5 或更高版本编译
#endif

5. 判断是否可以导入某个模块

使用方法:canImport(module)
module 参数的值为某个模块名称。比如我要判断是否当前环境是否可以使用 Kingfisher 模块:

#if canImport(Kingfisher)
// 可以使用 Kingfisher 模块
#endif

6. 判断目标环境

使用方法:targetEnvironment(env)
env 参数可以选用的值为有 simulator | macCatalyst,比如我要判断当前运行环境是否为模拟器:

#if targetEnvironment(simulator)
// 当前运行在模拟器上
#endif
  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值