【发布时间】:2014-08-13 16:34:55
【问题描述】:
如何在 Swift 条件编译语句中检查 iOS 部署目标?
我尝试了以下方法:
#if __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_8_0
// some code here
#else
// other code here
#endif
但是,第一个表达式导致编译错误:
Expected '&&' or '||' expression
【问题讨论】:
-
@VincentGuerci 谢谢。我看到了,但它没有回答我的(更具体的)问题。
-
您需要的一切都在此链接中,尤其是在苹果文档中,我认为没有内置的
__IPHONE_OS_VERSION_MIN_REQUIRED或类似的可用(还没有?),但您可以使用自己的构建配置变量。或者可能使用通过 .h 标头导入到 swift 中的“简单宏”来欺骗。 -
@VincentGuerci 是的,
__IPHONE_OS_VERSION_MIN_REQUIRED是内置的。如果您在 Xcode 中将它输入到您的.swift文件之一并单击它,Xcode 会将您带到它的声明:var __IPHONE_OS_VERSION_MIN_REQUIRED: CInt { get }。我不想指定多余的命令行标志。我想使用内置的,这样当我将 Xcode 中的 iOS 部署目标更改为 iOS 8(及更高版本)时,Xcode 可以正确编译我的代码。 -
我刚看到your answer。谢谢,详尽的解释。我现在只注释掉我的 iOS 8 代码。然后,一旦 Apple 公开发布 iOS 8,我将停止支持 iOS
标签: ios swift conditional-compilation buildconfiguration deployment-target