4
我想在使用iOS 8.1 SDK进行构建时有条件地编译一些代码,并且在使用8.0 SDK时编译一些不同的代码。在一个面向8.1 SDK的小型项目中(并且可以使用新的8.1版本的API),看起来#if
指令忽略了常量。Swift编译仅适用于iOS 8.1 SDK的代码
println("__IPHONE_8_1 is defined to be \(__IPHONE_8_1)")
#if __IPHONE_8_1
println("8.1")
#else
println("8.0")
#endif
上面的代码打印:
__IPHONE_8_1 is defined to be 80100
8.0
据对conditional compilation statements的文档,
SWIFT代码可以基于 构建配置评价被有条件地编译。构建配置包括下表中列出的文字
true
和false
值,命令行标志和平台测试 函数。您可以使用-D <#flag#>
指定命令行 标志。
然后它谈到os()
和arch()
功能,但没有关于SDK版本。