Xcode: остановить строки кода / функции от компиляции

У меня есть общие файлы в нескольких проектах, и мне нужно прекратить компилировать некоторые строки и функции для проекта A, в то время как он должен быть скомпилирован для проекта B.

Я знаю, что могу использовать препроцессор. Но это не удобно для меня. Есть ли способ остановить компиляцию строк кода с условием, как показано ниже?

#if PhotosModuleSettings.type == .documents
... do not commpile
#endif

2 ответа

Решение

Что не удобно в использовании препроцессора? Вы можете указать макросы препроцессора в настройках сборки каждой цели или использовать файлы.xcconfig для их указания.

Однако есть еще один простой способ сделать это. Разделите строки и функции, которые вы хотите условно скомпилировать в отдельные файлы. Может быть, используя расширения Swift или подклассы или просто отдельные глобальные функции и т. Д. Затем просто выберите, для каких целей и / или проектов вы хотите, чтобы эти файлы были добавлены в качестве участников.

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

Вам нужно будет использовать макросы препроцессора.

Добавьте конфигурацию для вашего проекта и используйте ее в макросах препроцессора.

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

Вот подробный блог, связанный с той же концепцией

Другие вопросы по тегам