Как преобразовать мой код Swift обратно в 2.3

Я загрузил XCode Beta 8 и преобразовал весь свой быстрый код из Swift 2.3 в Swift 3. Это вызвало у меня слишком много проблем и заставило меня начать проект, над которым я работал около 4 месяцев. Как преобразовать мой код из Swift 3 обратно в Swift 2.3?


person Adrian Humphrey    schedule 15.06.2016    source источник
comment
Вы преобразовали весь проект без резервной копии?! - Автоматический конвертер нет для Swift 3 -> Swift 2.   -  person Eric Aya    schedule 15.06.2016
comment
... и теперь, с опозданием примерно на 4 месяца, вы на собственном горьком опыте узнаете, почему необходим контроль версий, ...   -  person High Performance Mark    schedule 15.06.2016
comment
отменить изменения в вашей системе управления версиями?   -  person Sulthan    schedule 15.06.2016
comment
Если вы используете Mac, вы можете попробовать машину времени, но я не уверен, поможет ли это   -  person Daniel Krom    schedule 15.06.2016
comment
Просто смирись с этим и не оглядывайся назад. Исправьте свой код с помощью Swift 3   -  person Leo Dabus    schedule 15.06.2016
comment
(а) резервное копирование, резервное копирование, резервное копирование! (b) будьте осторожны с бета-версиями программного обеспечения   -  person Code Different    schedule 16.06.2016
comment
Спасибо, парни. Тяжелый урок выучен. Резервное копирование и контроль версий!   -  person Adrian Humphrey    schedule 16.06.2016
comment
Ребята, вы упускаете момент, зачем Apple рекомендует и подсказывает нам, если они даже не могут изменить 2.3 на 3 !!?!??!?!?!?!?!! Это просто глупо, что они не могли исправить (исправить как заблокировать) некоторые простые вещи, и каждая версия меняет некоторые нетривиальные вещи. Я ненавижу Apple каждый день немного больше. Жаль, что я упускаю возможность продать их акции, так как они определенно идут ВНИЗ.   -  person EralpB    schedule 25.12.2016


Ответы (3)


В настройках сборки для целевого переключателя «использовать устаревшую быструю версию» с «нет» на «да».

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

Это переключит компилятор обратно на нормальный 2.x, но не изменит сам код. Область действия ограничена новыми целями, созданными для проектов в старой версии Swift.

Однако у нас есть потенциальная проблема, связанная с тем, что «устаревшая версия» в будущей версии Xcode может измениться.

person Anton Tropashko    schedule 10.10.2016

Прежде всего, сохраните резервную копию вашего текущего проекта. В настоящее время!

Далее, вы имеете в виду Swift 2.2, верно?

Если у вас нет резервной копии и вы не используете систему контроля версий, я считаю, что единственный способ — открыть ваш проект с помощью Xcode 7.3.1 и вручную исправить ошибки, чтобы снова сделать код совместимым со Swift 2.2.

Если вам повезет

Даже если вы думаете, что не используете систему контроля версий, Xcode может автоматически создать для вас локальный репозиторий GIT. Чтобы проверить это, откройте исходный файл вашего проекта, а затем выберите Просмотр > Редактор версий > Показать редактор версий.

Теперь основная область разделена на 2 столбца. Внизу центрального столбца, разделяющего 2 исходных кода, есть кнопка со значком, похожим на Time Machine). Нажмите на нее.

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

person Luca Angeletti    schedule 15.06.2016
comment
Если они ничего не совершали, автоматически созданное репо будет бесполезным. (Хороший ответ, однако.) - person Eric Aya; 15.06.2016

Я чувствую тебя. Также усвоил этот урок трудным путем!!

Что (своего рода) сработало для меня, так это открытие проекта в XCode 7.3.1, что уменьшило количество ошибок с 230+ до 60. Я смог вернуться к Swift 2.2 вручную, внося изменения, такие как изменение данных обратно на NSData. Если вы знаете, какие изменения внес Swift 3 (погуглите), возможно, вы сможете исправить большую часть своего проекта.

Удачи!

person Jacobo Koenig    schedule 18.07.2016