Совместимость версий Swift

20 сентября 2021

Эта книга описывает Swift 5.5, дефолтную версию, которая по умолчанию поддерживается Xcode 13. Вы можете использовать Xcode 13 для сборки таргетов, которые написаны как на Swift 5.5, Swift 4.2, так и на Swift 4.

Когда вы используете Xcode 13 для того, чтобы собрать проект написанный на Swift 4 или Swift 4.2, то большая часть функционала Swift 5.5 также будет вам доступна. Иначе говоря, следующие изменения доступны только для кода написанного на Swift 5.5:

  • Функции, которые возвращают непрозрачные типы, требуют версию Swift 5.1.
  • Выражение try? не добавляет дополнительного уровня опциональности, если выражение уже является опционалом.
  • Инициализация через большие целочисленные литералы теперь возвращает корректный целочисленный тип. Например, UInt64(0xffff_ffff_ffff_ffff) теперь определяется корректно, если ранее он вызывал переполнение.

Для реализации параллелизма требуется Swift 5.5 или более новая версия, а также требуется соответствующая версия стандартной библиотеки Swift, которая предоставляет типы для реализации параллелизма. Чтобы иметь возможность использовать этот функционал, вам нужно установить версию операционной системы, для которой ведется разработка как минимум такие: iOS 15, macOS 12, tvOS 15 или watchOS 8.0.

Таргет, написанный на Swift 5.5 может зависеть от таргета написанного на Swift 4.2 или Swift 4 и наоборот. Это означает, что если у вас есть большие проекты, которые разделены на несколько фреймворков, то вы можете мигрировать с Swift 4 на Swift 5.5 по одному фреймворку за раз.