it-roy-ru.com

Обновление до Xcode 9 и Swift 4

Я новичок в Swift (менее 1 года), и я не уверен, как обновлять Swift до последней версии в новом Xcode каждый год. Мой проект был запущен под Xcode 8 и Swift 3.2. Теперь я обновил Xcode 9, который AFAIU поддерживает Swift 4

Поскольку я использую Cocoapods, я, очевидно, обновил все модули до их последних версий, что я считаю правильным поведением. 

Тем не менее, я вижу, что Swift version в настройках цели по-прежнему установлен на Swift 3.2. Что именно это означает? Должен ли я изменить его на Swift 4 вместо этого? Или это как минимальная версия, в соответствии с которой я должен написать код?

Также у меня есть 2 предупреждений в проекте:

 enter image description here

Что касается Pods, ясно, что Cocoapods это исправит, так что np.

А как насчет моего рабочего пространства? Моя цель работает нормально, без ошибок и предупреждений, я не уверен, почему она говорит мне о конверсии? Разве это не должно сказать точную строку в файле с кодом вместо этого?

Пожалуйста, опишите, каков правильный поток обновления до последнего Swift в целом, и как это работает с некоторыми модулями, которые не обновляются до последнего Swift каждый год. Я буду вынужден удалить их, или как форк и обновить до последней версии Swift вручную?

7
Stas Ivanov

Обновление версии XCode, не изменит/не обновит ваше программирование Swift языковая версия. Эти предупреждения показывают, что ваша текущая версия языка программирования Swift не 4.0 (ниже 4.0, то есть 3.2). 

(Также обратите внимание, что Xcode 9 и 8.3 оба поддерживают Swift 3.2. Вы также можете работать с Xcode 9, используя Swift 3.2.)

Итак, если вы откроете свой проект Xcode 8.x в Xcode 9, будет работать с версией Swift 3.2. 

Вручную вам нужно изменить Swift 3.2 на 4.0 из настроек сборки проекта.

Вот - Как увидеть текущую версию языка Swift и изменить ее на более новую.

enter image description here

Также обратите внимание: как только вы измените язык Swift, сделайте следующее:

  • Вы должны обновить/обновить какао-боб (CocoaPods)
  • Обновите pod libs/files вашего проекта (используя команду pod install или pod update)

Для более легкой миграции обратитесь к этим ответам:

(Xcode) Меню: Правка ► Скрытое ► К текущему синтаксису Swift

enter image description here

7
Krunal

Вам не нужно конвертировать ваш проект в Swift 4, Xcode 9 также поддерживает Swift 3.2

Если вы хотите преобразовать свой проект в Swift 4, используйте:

  • Edit -> convert -> To Current Swift Syntax

Вы также можете использовать обе версии (например, некоторые модули еще не должны быть готовы к Swift 4). Проверьте/установите версию вашей цели в Building settings - Swift language version 

1
Jakub Truhlář