Я только что создал новый проект Swift в Xcode. Мне интересно, какая версия Swift использует.
Как я могу видеть, в Xcode или терминале, какую версию Swift я использую в своем проекте?
Я только что создал новый проект Swift в Xcode. Мне интересно, какая версия Swift использует.
Как я могу видеть, в Xcode или терминале, какую версию Swift я использую в своем проекте?
В настройках сборки проекта есть блок "Swift Compiler - Languages", в котором хранится информация о версии языка Swift в формате ключ-значение. Он покажет вам всю доступную (поддерживаемую) версию языка Swift для вашего Xcode и активную версию также с помощью галочки.
Проект ► (Выберите цель проекта) ► Настройки сборки ► (Тип 'swift_version' в строке поиска) Язык компилятора Swift ► Язык Swift Версия ► Нажмите на Список языков, чтобы открыть его (и на любом из элементов списка будет текущая быстрая версия).
Посмотрите на этот снимок, чтобы легко понять:
С помощью следующего кода программно вы можете найти версию 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)
Что я могу сказать в терминале:
$ 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.
Откройте терминал и напишите:
swift -version
Из 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 для этой целевой цели проекта.
Вы можете видеть и выбирать, какую версию Swift для версии Xcode использовать в:
Цель → Настройки сборки → Версия Swift Language:
Это доступно в Xcode 8.3 и Xcode 9 (не проверили старые версии)
Это сообщение 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:)
Чтобы увидеть версию 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
Дополнительный вклад: я использую собственный скрипт 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
Вы также можете использовать регулярные выражения, но делайте что хотите:]
Я использую Swift от Google Colab. Вот как это проверить в Colab.
!/swift/toolchain/usr/bin/swift --version
Результат 5.0-dev
Xcode 10.2
показать изображение @Krunal
/usr/bin/swiftc --version
со 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
}
}
Просто введя команду 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.
Проект ► (Выберите цель проекта) ► Настройки сборки ► (введите "swift" в панели поиска) Язык Swift для компилятора ► Быстрая версия языка ► Нажмите "Список языков", чтобы открыть его.