Как узнать, какую версию Swift я использую?

Я только что создал новый проект Swift в Xcode. Мне интересно, какая версия Swift использует.

Как я могу видеть, в Xcode или терминале, какую версию Swift я использую в своем проекте?

Ответ 1

В настройках сборки проекта есть блок "Swift Compiler - Languages", в котором хранится информация о версии языка Swift в формате ключ-значение. Он покажет вам всю доступную (поддерживаемую) версию языка Swift для вашего Xcode и активную версию также с помощью галочки.

Проект ► (Выберите цель проекта) ► Настройки сборки ► (Тип 'swift_version' в строке поиска) Язык компилятора Swift ► Язык Swift Версия ► Нажмите на Список языков, чтобы открыть его (и на любом из элементов списка будет текущая быстрая версия).

Посмотрите на этот снимок, чтобы легко понять:

enter image description here


С помощью следующего кода программно вы можете найти версию Swift, поддерживаемую вашим проектом.

#if 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)

enter image description here

Ответ 2

Что я могу сказать в терминале:

$ xcrun swift -version

Выход для Xcode 6.3.2:

Apple Swift version 1.2 (swiftlang-602.0.53.1 clang-602.0.53)

Конечно, предполагается, что ваш xcrun правильно указывает вашу копию Xcode. Если, как и я, вы жонглируете несколькими версиями Xcode, это может быть проблемой! Чтобы убедиться, что это так, скажем

$ xcrun --find swift

и посмотрите на путь к Xcode, который он вам показывает. Например:

/Applications/Xcode.app/...

Если это ваш Xcode, то вывод из -version является точным. Если вам нужно перепечатать xcrun, используйте всплывающее меню "Инструменты командной строки" в области предпочтений Xcode Locations.

Ответ 3

Откройте терминал и напишите:

swift -version

Ответ 4

Из Xcode 8.3 onward Build Settings имеет ключ Swift Language Version со значением быстрой версии, которую использует ваша цель.

Для старых Xcodes это решение используется, открыть терминал и ввести следующую команду (и)

Случай 1: вы установили только одно приложение Xcode

swift -version

Случай 2: вы установили несколько приложений Xcode

  • Переключатель active developer directory (Заменить Xcode_7.3.app от следуя команде с вашим именем приложения приложения Xcode из каталога приложений, для которого вы хотите для проверки быстрой версии)

     sudo xcode-select --switch /Applications/Xcode_7.3.app/Contents/Developer
    
  • Тогда

     swift -version
    

ПРИМЕЧАНИЕ.. От Xcode 8 до Xcode 8.2.x вы можете использовать swift 2.3, хотя Xcode 8 использует swift 3.x в качестве быстрой версии по умолчанию. Чтобы использовать swift 2.3, просто включите флаг Use Legacy Swift Language Version в YES из Build Setting, а XCode будет использовать Swift 2.3 для этой целевой цели проекта.

Ответ 5

Вы можете видеть и выбирать, какую версию Swift для версии Xcode использовать в:

Цель Настройки сборки Версия Swift Language:

введите описание изображения здесь

Это доступно в Xcode 8.3 и Xcode 9 (не проверили старые версии)

Ответ 6

Это сообщение reddit помогло мне: https://www.reddit.com/r/swift/comments/4o8atc/xcode_8_which_swift/d4anpet

Xcode 8 использует Swift 3.0 по умолчанию. Но вы можете включить Swift 2.3. Перейдите в Project Build Settings и установите "Использовать устаревшую версию языка Swift" в YES.

Старый добрый reddit:)

Ответ 7

Чтобы увидеть версию swift по умолчанию, установленную на вашем компьютере, а затем из командной строки введите следующее:

swift --version

Apple Swift версия 4.1.2 (swiftlang-902.0.54 clang-902.0.39.2)

Цель: x86_64-apple-darwin17.6.0

Скорее всего, это версия, которая включена в версию Xcode магазина приложений, которую вы установили (если вы ее не изменили).

Если вы хотите определить фактическую версию Swift, используемую конкретной версией Xcode (например, бета), то из командной строки вызовите исполняемый файл swift в комплекте Xcode и передайте ему параметр --version

/Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift --version

Apple Swift версия 4.2 (swiftlang-1000.0.16.7 clang-1000.10.25.3)

Цель: x86_64-apple-darwin17.6.0

Ответ 8

Дополнительный вклад: я использую собственный скрипт 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

Вы также можете использовать регулярные выражения, но делайте что хотите:]

Ответ 9

Я использую Swift от Google Colab. Вот как это проверить в Colab.

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

Результат 5.0-dev

Ответ 10

Xcode 10.2

img

показать изображение @Krunal

Ответ 12

со Swift 5:

override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath)
{
    let cell = self.tableView.cellForRow(at: indexPath)
    if cell?.accessoryType == UITableViewCell.AccessoryType.checkmark
    {
        cell?.accessoryType = UITableViewCell.AccessoryType.none
        tableView.deselectRow(at: indexPath, animated: true)
    }else
    {
        cell?.selectionStyle = UITableViewCell.SelectionStyle.none
        cell?.accessoryType = UITableViewCell.AccessoryType.checkmark
    }       
}

Ответ 13

Просто введя команду swift в терминале, он покажет версию и войдет в консоль Swift. (Что-то вроде ниже)

System-IOSs-MacBook-Air:~ system$ swift
Welcome to Apple Swift version 5.1 (swiftlang-1100.0.270.13 clang-1100.0.33.7).
Type :help for assistance.

Ответ 14

Проект ► (Выберите цель проекта) ► Настройки сборки ► (введите "swift" в панели поиска) Язык Swift для компилятора ► Быстрая версия языка ► Нажмите "Список языков", чтобы открыть его.