Проблема заголовка моста - "MyClass" недоступен: не удается найти объявление Swift для этого класса
Я посетил эту ссылку -
MyClass недоступен: не удается найти объявление Swift для этого класса - Release Build Only
Swift: использование приватных фреймворков
Но ни одна из вышеперечисленных ссылок не помогла мне решить мою проблему.
Я занимаюсь разработкой приложения с использованием target-c, в приложении я интегрирую ios-диаграммы, структура которых разработана в swift. Я объединил проект, как указано в файле README. После интеграции я создал файл MyClass.swift, а затем унаследовал файл MyClass.swift с классом, который определен в charts.framework
.Но это поднимает ошибку
Класс недоступен: не удается найти объявление Swift для этого класса
Кто-нибудь помогает мне решить эту ошибку? Какие-либо предложения??
5 ответов
Это может быть связано с тем, что вы создаете устройство и используете его для симулятора, и наоборот. Пожалуйста, проверьте это. Это очень важная вещь. Если вы скомпилировали или собрали фреймворк для устройства, он не будет работать на симуляторе.
Мое исправление для этой проблемы состояло в том, чтобы изменить цель развертывания фреймворка с моего устройства на "Универсальное устройство iOS", а затем перестроить фреймворк.
Попробуйте добавить @objc напротив объявления MyClass (например, @objc class MyClass {...})
Я столкнулся с той же проблемой, то есть при вызове функций из "MyClass", содержащихся в "MyFramework", он сообщает, что "MyClass" недоступен. Оказывается, цели развертывания iOS платформы и вызывающего ее приложения различны. Когда я устанавливаю оба одинаковых, проблема исчезает.
Эта ошибка просто из-за несовместимости платформы для сборки, на которой вы пытаетесь ее запустить.
Исправлено:-
1) Удалить рамки из вашего проекта
2) Тогда:-
Если вы используете симулятор, перейдите в проект фреймворка и создайте проект фреймворка, выбрав симулятор из списка симуляторов iOS (любое устройство из списка симуляторов), а затем импортируйте фреймворк в хост-проект.
Если вы используете физическое устройство, перейдите в проект фреймворка и создайте проект фреймворка, выбрав "Общее устройство iOS"/ Физическое устройство (которое подключено), а затем импортируйте фреймворк в хост-проект.
Теперь должно работать нормально. Надеюсь это поможет!