Как конвертировать гигантский проект Objective C в Swift - PullRequest
0 голосов
/ 23 октября 2018

У меня запущен проект, и он действительно гигантский, он содержит почти 1000 файлов и 4 пользовательских (собственных встроенных) фреймворка и почти 10 других, добавленных через Pods.Я прошел через Миграция вашего кода Objective C в Swift , а также Миграция с Swiftify .

Я начал преобразовывать каждый файл один за другим, как рекомендует Apple, но первое преобразование не было успешно выполнено Swiftify, а также возникают проблемы с зависимостями.

Так что в этой позиции похоже, что я начинаю ходитьв пустыне Сахара, где я не вижу конечной точки.

Так что мне нужно несколько советов, как конвертировать в Swift этот довольно масштабный проект?

Ответы [ 3 ]

0 голосов
/ 06 декабря 2018

Я недавно конвертировал SVProgressHUD в swift, используя Swiftify .Преобразованный код можно найти по адресу здесь .

Основные выводы:

  1. Чтобы начать преобразование кода по одному файлу за раз, поддерживая совместимость с Objective C, то есть преобразованный файл swift должен быть совместим с вашей существующей Objective-C код.
  2. Выберите класс, который не имеет подклассов и является простым.

Conversion Strategy Flowchart

Подробная стратегия преобразования здесь .

0 голосов
/ 20 декабря 2018

Приложения Objective C обычно можно легко конвертировать в Swift.MacOS IDE Xcode помогает в плавной миграции.Да, есть некоторые проблемы, но они могут быть решены в любом случае.Ваш проект огромен, так что это может быть проблемой, так как для перемещения требуется так много файлов.Вы можете попробовать конвертировать файлы модуль за модулем.Таким образом, вы можете разделить миграцию по файлам.

Вы можете проверить Как преобразовать приложение Objective C IOS в Swift , пошаговое руководство по миграции Objective Cприложения для Swift.

Вы описали, что прошли Миграцию со Swiftify, поэтому, очевидно, их онлайн-инструмент от Objective-C до Swift не может справиться с работой идеально.Вы можете попробовать Конвертировать Objective-C в Swift Online |iSwift онлайн-инструмент также для преобразования Objective C. в Swift.

Новички в Swift разработчики могут воспользоваться помощью этих информационных ресурсов.

Язык программирования Swift

Swift - Apple Developer

0 голосов
/ 23 октября 2018

Ваш подход преобразования Objective-C в Swift неверен!Apple также потребовалось время, чтобы полностью внедрить Swift в свои фреймворки, и новость - в 2018 году, 85% фреймворков конвертированы в Swift, поэтому дело в том, что на это у них ушло почти 3 года!

Самая большая проблема заключается в том, что Swift все еще развивается, и, вероятно, в следующем году мы можем увидеть «Swift 5.0».Итак, что я предлагаю вам пройти следующим образом:

  1. Выберите последнюю версию Swift (то есть 4.2).
  2. Вместо того, чтобы начать преобразование всего проекта, адаптируйте модульный способ.
  3. Из вашего проекта, прежде всего, начните собирать меньшие модули, которые никак не влияют на приложение, и убедитесь, что файл "Swift" хорошо работает с Objective-C (ваш старый код).Ссылка: Как я могу импортировать код Swift в Objective-C?
  4. Когда вы закончите с меньшими, медленно начинайте собирать большие модули, также вы можете найти библиотеки Swift с открытым исходным кодом, которые находятся вObjective-C в вашем проекте.
  5. Кроме того, вы также можете создавать модули с нуля в виде небольших проектов, а затем просто перетаскивать их в проект Objective-C.
  6. AndreasOetjen Предложение. Можно начать с разделения иерархии классов и преобразовать одно «поддерево» за другим.

Как помогают вышеуказанные очки?

  1. Вы можете найти необычный код или библиотеки, лежащие вокруг.
  2. Вы можете закончитьс чистым кодом в правильной структуре
  3. Вы можете использовать «Swift + Objective-C» на данный момент, чтобы обеспечить бесперебойную работу приложения, а также регулярно предоставлять обновления, а не ждать месяцы, чтобы полностью преобразовать его.
...