我刚刚在Xcode中创建了一个新的Swift项目。我想知道它使用的是哪个版本的Swift。

我如何在Xcode或终端中看到我在项目中使用的Swift版本?


当前回答

我使用Swift从谷歌Colab。下面是如何在Colab中检查它。

!/swift/toolchain/usr/bin/swift --version

结果是5.0-dev

其他回答

您将在项目设置下得到这个

项目构建设置有一个块'Swift Compiler - Languages',它以键值格式存储关于Swift语言版本的信息。它会显示你所有可用的(支持的)Swift语言版本为你的Xcode和活动版本也通过一个标记。

项目►(选择你的项目目标)►构建设置►(类型 Swift编译语言►Swift语言 版本►点击语言列表打开它(在列表中的任何一个项目上都会有一个标记,这将是当前的swift版本)。

为了便于理解,请看这张快照:


在以下代码的帮助下,您可以通过编程方式找到您的项目支持的Swift版本。

#if swift(>=5.7)
print("Hello, Swift 5.7")

#elseif swift(>=5.6)
print("Hello, Swift 5.6")

#elseif swift(>=5.5)
print("Hello, Swift 5.5")

#elseif swift(>=5.4)
print("Hello, Swift 5.4")

#elseif swift(>=5.3)
print("Hello, Swift 5.3")

#elseif swift(>=5.2)
print("Hello, Swift 5.2")

#elseif swift(>=5.1)
print("Hello, Swift 5.1")

#elseif swift(>=5.0)
print("Hello, Swift 5.0")

#elseif swift(>=4.2)
print("Hello, Swift 4.2")

#elseif swift(>=4.1)
print("Hello, Swift 4.1")

#elseif swift(>=4.0)
print("Hello, Swift 4.0")

#elseif swift(>=3.2)
print("Hello, Swift 3.2")

#elseif swift(>=3.0)
print("Hello, Swift 3.0")

#elseif swift(>=2.2)
print("Hello, Swift 2.2")

#elseif swift(>=2.1)
print("Hello, Swift 2.1")

#elseif swift(>=2.0)
print("Hello, Swift 2.0")

#elseif swift(>=1.2)
print("Hello, Swift 1.2")

#elseif swift(>=1.1)
print("Hello, Swift 1.1")

#elseif swift(>=1.0)
print("Hello, Swift 1.0")

#endif

下面是使用Playground的结果(使用Xcode 11.x)

额外的贡献: 我正在使用一个自定义node.js脚本来提取一个干净的字符串用于Jazzy文档。如果你能找到一个地方将其运用到你的开发过程中,你可能会用到它:

从Bash脚本调用:

#!/bin/bash
swiftversion=$(node SwiftVerSlicer.js "${xcrun swift -version}");
echo $swiftversion

SwiftVerSlicer.js:

// begin script
const inputString = `${process.argv[2]}`
let searchTerm = (inputString.indexOf('(') - 1)//-1 cause whitespace
let version = inputString.slice(0,searchTerm)
console.log(version)
// end script

当然,你也可以使用regex,但你可以随心所欲:]

这篇reddit帖子帮助了我: https://www.reddit.com/r/swift/comments/4o8atc/xcode_8_which_swift/d4anpet

Xcode 8默认使用Swift 3.0。但你可以打开Swift 2.3。转到项目的构建设置,并将“使用传统Swift语言版本”设置为YES。

好老reddit:)

打开终端并写入:

swift -version