Преобразование инфраструктуры Objective C в Swift - файлы заголовков, по-прежнему отображающие функции Objective C - PullRequest
0 голосов
/ 05 октября 2018

Я преобразовал весь свой Objective-C фреймворк в Swift.После его создания, когда я проверяю файлы заголовков фреймворка, он по-прежнему отображает старые функции Objective-c.
Я удалил все файлы Objective-C из проекта фреймворка.Я попытался очистить и построить проект.Но безуспешно.

Ответы [ 4 ]

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

Вы удалили файлы Objective-C из проекта XCode, но удалили ли вы также их из файловой системы и любого источника управления, который вы могли бы использовать?

Кроме того, ваши настройки сборки в вашем проекте XCode могутискать файлы библиотек / заголовков даже после того, как вы удалили их из явного включения в Project Navigator в Xcode.

Просто убедитесь, что пути поиска не ищут старый Obj-C вещи.Будьте осторожны с рекурсивными поисками типа MyXcodeProject/**.** будет рекурсивно искать во всех подпапках и их подпапках вещи, которые нужно включить.

Лучше, если возможно, указывать папки непосредственно в путях поиска.Если вы знаете, что вам не нужны пути поиска, вы можете просто очистить их все.

enter image description here

... хотя вы можете оставитьпо умолчанию исключения:

enter image description here

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

Как вы можете видеть файлы «Header» в среде на основе Swift даже после удаления файлов Obj C.Определенно есть проблема сборки.Если сборка правильная, то вы не ссылаетесь / не используете правильную структуру (в приложении) после ее сборки.Это самая распространенная ошибка, которую я наблюдал у многих разработчиков.

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

Может быть, это может помочь, попробуйте на Target вашей платформы Настройки сборки :

  • Отключить модули (Включить модули (C и Objective-C))

Disable modules

  • Убедитесь, что установлена ​​версия Swift (языковая версия Swift)

enter image description here

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

Помните, что вы не можете создать подкласс класса Swift в Objective-C.Поэтому переносимый класс не может иметь подклассов Objective C.

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

Чтобы сделать класс Swift доступным в Objective-C, сделайте его потомком класса Objective-C.

Удерживая клавишу Command, щелкните имя класса Swift, чтобы увидеть его сгенерированный заголовок.

Опционально щелкните символ, чтобы увидеть неявную информацию о нем, такую ​​как его тип, атрибуты и комментарии к документации.

из: https://developer.apple.com/documentation/swift/migrating_your_objective-c_code_to_swift

Кроме того, удалите данные DerivedData., выполните чистую сборку и перезапустите xCode.

...