Могу ли/должен ли я иметь более одного соединительного заголовка Objective-C?

Я пытаюсь внедрить некоторые новые интеграции Siri в свое приложение. У меня есть старый заголовок Objective-C, который я использовал в своем проекте в целом, но теперь этой новой цели Siri Intents также нужен заголовок. Итак, теперь у меня есть два связующих заголовка target-c: один для основного проекта и его цели, а другой — для цели Siri Intents.

Это не работает, как я ожидал. Я получаю сообщение об ошибке «неразрешенное использование идентификатора», относящееся к одному из классов Objective-C, которые я пытаюсь импортировать.

В моих настройках сборки для следующего:

  • Проект: каталог для основного заголовка моста
  • Targets:
    • selfTitledTarget: directory for main bridging header
    • SiriIntent: каталог для нового заголовка моста

Мой основной заголовок моста включает в себя весь импорт нового заголовка моста на всякий случай.

У меня не было этой проблемы до запуска новых реализаций Siri. У меня есть другой проект, который является ТОЛЬКО реализациями Siri, и он работает нормально, поэтому я предполагаю, что моя проблема связана с тем, что у меня есть несколько заголовков моста?


person LuKenneth    schedule 10.05.2017    source источник


Ответы (2)


Проект: каталог для основного заголовка моста

Цели:

  • selfTitledTarget: каталог для основного заголовка моста

  • SiriIntent: каталог для нового заголовка моста

Это бессмысленно. В проектах нет связующих заголовков; цели делают. И их настройки сборки заголовка моста не являются каталогами; они файлы.

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

После этого я бы предложил импортировать все ваши файлы Objective-C .h в оба заголовка моста. Это не повредит, и это должно решить ваши проблемы.

person matt    schedule 11.05.2017

Это не заголовок: один соединительный заголовок для каждой цели — это именно то, как это должно работать.

Проблема в том, что указанный класс не компилируется в цель намерения. Проверьте целевую панель членства в Инспекторе файлов (⌘⌥1) и установите общие исходные файлы для включения во все целевые объекты, где они необходимы.

person jscs    schedule 10.05.2017