当前位置: 首页 > 知识库问答 >
问题:

SWIFT:iOS部署目标命令行标志

宰父夕
2023-03-14
#if __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_8_0
    // some code here
#else
    // other code here
#endif

但是,第一个表达式会导致编译错误:

Expected '&&' or '||' expression

共有1个答案

仲承福
2023-03-14

TL;Dr?>转到3。解决方案

根据Apple关于预处理指令的文档:

Swift编译器不包括预处理器。相反,它利用编译时属性、构建配置和语言特性来完成相同的功能。由于这个原因,预处理器指令不在SWIFT中导入。

#if [build configuration]
#if [build configuration] && ![build configuration]
    null

例如,现在可以使用#ifif iosversionminrequired7而不是__iphone_os_version_min_required>=__iphone_7_0,当然假设您的目标是ios7。

这与在项目中更改iOS部署目标版本基本相同,只是不太方便...当然,您可以根据您的iOS版本目标,使用相关方案进行多个构建配置。

苹果肯定会改进这一点,也许会使用一些内置功能,如os()······

 类似资料:
  • 我可以在Wildfly快速入门中提供的Eclipse中运行这些教程中的大部分: https://github.com/wildfly/quickstart/

  • kubectl 默认从 ~/.kube/config 配置文件获取访问 kube-apiserver 地址、证书、用户名等信息,如果没有配置该文件,执行命令时出错: $ kubectl get pods The connection to the server localhost:8080 was refused - did you specify the right host or port?

  • 我能够使用liquibase命令行成功地标记,但不知道它标记到哪里并存储在哪里。命令已成功执行,下面是对tag命令的输入和响应。 这可能是一个非常微不足道的问题,但我找不到任何留档。我确实尝试了它的工作区-C:\liquibase-3.3.2-bin\sdk\workspace,在那里找不到任何东西。有人能帮忙吗? 谢谢! 输入: C: \液化酶-3.3.2-bin \液化酶。bat—驱动程序=c

  • 命令行参数标记是为命令行程序指定选项参数的常用方法。例如,在命令wc -l中,-l就是一个命令行参数标记。 Go提供了flag包来支持基本的命令行标记解析。我们这里将要使用这个包提供的方法来实现带选项的命令行程序。 package main import "flag" import "fmt" func main() { // 基础的标记声明适用于string,integer和bool型选

  • 我使用CocoaPods来管理项目中的依赖关系。我写过Podfile: 这个文件在CocoaPods 0.x上运行良好,但是在我升级到CocoaPods 1.0后,我无法编译project。在我跑完之后 我无法用错误编译我的项目: /用户/ 我发现每个库都有不同的部署目标。例如,KeepLayout是用4.3部署目标构建的。 如何确定每个 Pod 依赖项的构建目标?

  • 我正在尝试构建一个从git存储库中提取的项目,所有内容似乎都已正确安装,但当我运行gradle时,我收到以下消息: 然后我运行android报告,查看我安装了哪些目标: 是否有其他已知的问题引发了这种情况,而我却没有发现? 更新:我早就放弃了这个项目,因为它是一个宠物项目,试图通过使用github将项目同步到命令行虚拟机,远程开发android应用程序。然而,正如您可能已经知道的,或者可能不是因为