Заголовок моста Objective-C не создается с помощью Xcode 8

Я пытаюсь добавить библиотеки Objective-C в свой проект Swift 3 (Xcode 8 IDE). Но заголовок интерфейса target c не генерируется автоматически. Я попытался добавить заголовок моста вручную, но показал ошибку связывания, говорящую о том, что заголовок моста .h не найден. Любая помощь будет оценена по достоинству :)


person Augustine P A    schedule 21.09.2016    source источник


Ответы (5)


Здесь решение проблемы.

  • Создайте новый файл заголовка и назовите его, например, "название вашего проекта-Bridging-Header.h". Файл должен быть сохранен в папке вашего проекта
  • Выберите свой проект xcode -> выберите цель сборки -> выберите параметры сборки -> щелкните параметр «все» вверху -> найдите Swift Compiler — General.
  • Выберите элемент Заголовок моста Objective-C и дважды щелкните поле его значения (справа от той же строки). Появится одно всплывающее окно, и там вы можете ввести путь к файлу заголовка моста (выполните следующие шаги, чтобы указать путь к файлу заголовка).
  • Откройте Finder и перетащите файл заголовка моста во всплывающее окно. Теперь он создаст абсолютный путь для заголовка моста. Чтобы сделать связанный путь, вы можете указать путь как $(PROJECT_DIR)/$(PROJECT_NAME)/$(PROJECT_NAME)-Bridging-Header.h

  • Нажмите снаружи, чтобы сохранить значение. Готово!! Теперь вы можете импортировать свои библиотеки Objective-C (например, #import "SVProgressHUD.h") в файл моста и начать использовать его в своем быстром проекте.

Надеюсь, это будет полезно для кого-то. :)

person Augustine P A    schedule 21.09.2016
comment
Отличается ли это от процедуры, описанной в stackoverflow.com/a/24005242/1187415, начиная с В некоторых ситуациях , особенно при работе с платформами ObjC, ... ? - person Martin R; 21.09.2016
comment
Если вы перетащите, вы получите абсолютный путь, вы можете заменить путь проекта на $(SRCROOT), чтобы сделать его относительным - person Whakkee; 23.11.2016
comment
что делать, если нет Swift Compiler - General? - person Zaporozhchenko Oleksandr; 12.02.2017
comment
@Aleksandr Я потратил последний час на поиск ответа на этот вопрос, так как у меня была такая же проблема .... Выберите ВСЕ вверху, и вы сможете его найти. - person Johan Tingbacke; 13.02.2017
comment
@JohanTingbacke Отлично! Вы меня спасли :) И как-то неловко, что проблема так легко разрешилась) - person Zaporozhchenko Oleksandr; 13.02.2017
comment
Корневой каталог имени моего проекта содержит пробелы между словами. И я поместил заголовочный файл моста в основную цель. Поэтому при добавлении файла заголовка моста в заголовок моста Objective-C мне также нужно будет написать имя корневого каталога, и оно содержит пробелы. Не могли бы вы сказать, как мне указать имя моего файла заголовка моста? - person Apurva; 23.09.2017
comment
Еще более простой способ — добавить в проект пустой файл .m. Xcode теперь предложит вам автоматически создать заголовок моста. - person EricS; 18.11.2017

Этапы создания файла заголовка Objective C

  1. Файл -> Создать -> Файл -> Файл заголовка

  2. Назовите файл заголовка следующим образом: yourAppName-Bridging-Header.

  3. Теперь нажмите на свой Проект -> Настройки сборки.

  4. Изменить с Базовый на Все

  5. Поиск Мост

  6. Вы получите результат поиска, как показано на изображении ниже.

введите описание изображения здесь

после добавления

введите описание изображения здесь

  1. В этом случае дважды щелкните справа от Заголовок моста Objective-C и введите следующее:

    например, yourAppName/yourAppName-Bridging-Header.h

  2. Вам нужно импортировать следующим образом

введите описание изображения здесь

  1. Это все

Удачного кодирования :)

Примечание:
Заголовочный файл должен находиться непосредственно внутри проекта, т.е. он не должен создаваться внутри какой-либо подпапки

person Ariven Nadar    schedule 27.03.2018

Кажется, проще всего просто создать новый файл Objective-C, а Xcode позаботится обо всех мелочах настройки всего. Как только это будет сделано, вы можете удалить файл Objective-C.

  1. Щелкните правой кнопкой мыши в проводнике проекта и выберите новый файл.
  2. Выбранный файл Objective-C
  3. Назовите это delete_me или что-то в этом роде.
  4. Вам будет предложено создать файл моста и сказать «да».
  5. Удалите созданный вами файл (возможно, delete_me.m)
person Mr Rogers    schedule 25.02.2019
comment
Я не получаю приглашение на шаг 4. - person shredding; 18.03.2020

В случае нескольких целей убедитесь, что классы swift являются членами этой цели, иначе файл не будет создан.
Xcode 8.3

person Klajd Deda    schedule 23.08.2017

Свифт 5

Простой способ

1--cmd+n 
              then select 
2--Objective-C File (name your file it like this YourAppName-Bridging-Header)

       if popup arrive for bridging header then select 

3--YES
       if not 
       //MARK:-click on your 
4--Project->BuildSettings
       //MARK:- in search     
5--Bridging Header
6--Double click and paste bottom line and done
$(PROJECT_DIR)/$(PROJECT_NAME)/$(PROJECT_NAME)-Bridging-Header.h
person Shakeel Ahmed    schedule 03.03.2020