2016-09-26 4 views
16

Чтобы использовать Xcode 8 с проектом Swift, мы должны преобразовать его в новый синтаксис Swift 3.Преобразование в Swift 3 с Xcode 8

У меня есть проект с несколькими cocoapods. Во-первых, я установил все новые версии этих стручков из соответствующих источников, поэтому они уже преобразованы в Swift 3.

Затем я использовал Edit -> Convert -> To current Swift syntax choosing Swift 3 для своей основной цели (в основном, для реального приложения). Все было хорошо, но на первой сборке я получил много ошибок, даже простых, исправленных с помощью CMD+ALT+CTRL+F, но они увеличиваются при каждой сборке. Я думаю, что этот инструмент преобразования не самый лучший, или что-то пошло не так.

Можете ли вы указать мне в правильном направлении?

Скриншот, чтобы показать вам проблемы

screenshot errors

+0

Можете ли вы показать некоторые ошибки? –

+2

Я борюсь с той же проблемой - этот разговор работает только для очень маленьких проектов. Итак, на данный момент я остаюсь в версии 7.3.1 - и позже я перестрою проект из лома (так что копируйте класс для класса - попробуйте преобразовать/проверить синтаксис) - но для этого потребуется хотя бы один полный день для одного проекта , – derdida

+0

И проверить это: все еще много «ручной» работы для преобразования в последний синтаксис. https://stackoverflow.com/questions/37946899/converting-to-swift-3-difficulties?rq=1 – derdida

ответ

6

Я знаю, что это грустно, но нет никакого другого решения, чем изменения кода вручную. Это то же самое с ограничениями, которые также различны, и вы должны изменить их все (если они ошибаются): /.

+0

Я столкнулся с этим тем же. Все мои ограничения пришлось переделать. Огромная боль говорит клиенту, что простое обновление этикеток, которое они хотели, займет 4 часа, когда я переделаю весь макет своего приложения. – DiggyJohn

+0

Конечно, XCode изящно показывает, что вы устанавливаете опцию рядом с меткой ошибки, вы можете следовать этой опции, чтобы избавиться от вышеупомянутых проблем. – GvSharma

2

Вы можете перейти бесплатные услуги (для больших файлов необходимо обновить accont), ясно и просто:

Online Convertor

Вы можете сделать Перекодировку путем преобразования небольшой блок коды. Иногда по строкам.

Другой способ - сделать объективный мост в вашем проекте swift3.

Использование (в сочетании с онлайн-преобразователем) Исправлено из xcode 8. Он очень полезен (должен быть осторожным с автоматическим исправлением, иногда вы будете деградировать код).

В основе: Неплохо, вы должны исправить все ошибки вручную. Лучший способ научиться быстрому 3. 90% ошибок очень легко исправить, просто следуйте за журналами ...

+0

Включает ли этот сервис из swift 2.0 -> 3.0 или только форма objc -> swift 2/3 – eonist

+0

Нет, но нет необходимости в этом. Если вы можете скачать xcode 8.0 ver или> 8.0, то автоответчик выполнит эту работу для вас. –

+1

То есть теория, IRL не так просто. Возьмите Range, например. Полностью переработан в версии 3.0. – eonist

Смежные вопросы