Ошибка «Модуль не найден» при импорте модуля Swift в проект Objective-C

У меня есть существующий проект, написанный на Objective-C. Я хочу использовать в этом проекте библиотеку iOS Charts Дэниела Гинди, которая находится в Swift. . Как я могу этого добиться?

импорт быстрой структуры в проект Objective-C связан, но в моем случае я использую библиотеку, устанавливая ее через Cocoapods как указано здесь.

В этом вопросе он, по крайней мере, может импортировать заголовок, но в моем случае я не могу.

шаг 1: Создайте проект с одним представлением на Objective-C.

Шаг 2: Создайте подфайл и добавьте следующие строки:

use_frameworks!
pod 'Charts'

Шаг 3: Установите модуль

Шаг 4: Попробуйте импортировать диаграммы в ViewController.h с помощью @import Charts, но на этом этапе выдается ошибка. Ошибка - Module Charts not found


person Rohan Sanap    schedule 26.11.2015    source источник
comment
stackoverflow.com/ вопросов/31099596/ проверьте этот вопрос, вы можете найти ответ здесь   -  person satheesh    schedule 26.11.2015
comment
@JoshCaswell В моем редактировании четко указано, почему мой вопрос не совпадает с вопросом, указанным как дубликат. Пожалуйста, удалите дублирующую отметку, если вы найдете мое редактирование убедительным, чтобы я скоро получил решения.   -  person Rohan Sanap    schedule 26.11.2015
comment
@satheesh Я тоже не могу @import Charts   -  person Rohan Sanap    schedule 26.11.2015
comment
@JoshCaswell Позвольте мне рассказать вам, как воспроизвести мою проблему. шаг 1: Создайте проект с одним представлением на Objective-C. шаг 2: создайте подфайл и добавьте следующие строки - use_frameworks! pod 'Charts' шаг 3: установите модуль шаг 4: попробуйте импортировать диаграммы в ViewController.h с помощью @impot Charts, но на этом этапе выдается ошибка.   -  person Rohan Sanap    schedule 26.11.2015
comment
@JoshCaswell готово! по крайней мере, теперь вы, возможно, поняли, что мой вопрос не является дубликатом! Пожалуйста, удалите повторяющийся знак.   -  person Rohan Sanap    schedule 26.11.2015
comment
Вы создаете свой проект из файла xcodeproject или xcworkspace после установки модуля?   -  person Anni S    schedule 26.11.2015
comment
xcworkspace файл @Anni S   -  person Rohan Sanap    schedule 26.11.2015


Ответы (3)


В моем существующем проекте я сделал #include Charts-Swift.h в файле main.m моего проекта, и это решило мою проблему. @import Charts теперь работало отлично. Это было сделано по инструкции, которая написана в документации Apple здесь.

Я создал новый проект и попробовал ответ Энни С., на этот раз я построил проект с помощью cmd+B перед написанием любого оператора импорта, и он тоже работал. Я предполагаю, что необходимо создать его один раз после установки модуля и перед импортом любого модуля.

person Rohan Sanap    schedule 26.11.2015

Я попробовал тот же шаг, о котором вы упомянули в комментарии, но не получил той ошибки, которую вы получили. Мой проект просто строится и запускается. Шаги, которые я выполнил:

  1. Создайте проект с одним представлением Objective-C.
  2. Добавлен «Podfile» на уровне каталога проекта (Podfile должен быть на уровне файла xcodeproject) и добавлены следующие строки.
use_frameworks!
pod 'Charts'
  1. Закрыть xcodeproject
  2. Перейдите в каталог проекта и запустите команду 'pod install' из терминала.
  3. Откройте рабочее пространство, т.е. файл .xcworkspace
  4. Импортируйте файл диаграмм в контроллер представления, например

#import "ViewController.h" @import Charts;

person Anni S    schedule 26.11.2015
comment
Это сработало, когда я попробовал ваши шаги с новым проектом, но не с моим существующим проектом. - person Rohan Sanap; 26.11.2015
comment
Итак, я думаю, вы можете что-то упустить в существующем проекте. Просто удалите все файлы, связанные с CocoPod, в существующем проекте и повторите шаги, указанные в ответе. - person Anni S; 26.11.2015

Я нашел причину, по которой это работает для нового проекта, но для существующего проекта.

В настройках проекта удалите значение свойства Other Linker Flags.

Это тот случай, когда большинство разработчиков упускают из виду.

person Harri Westman    schedule 22.08.2016