Interface Builder не может видеть классы в статической библиотеке
-
21-08-2019 - |
Вопрос
Я преобразовал некоторые подклассы UIView в статическую библиотеку.Однако при использовании Interface Builder для создания компонентов представления для проекта, который использует статическую библиотеку, я обнаруживаю, что он не знает о библиотечных классах.Что мне нужно сделать, чтобы интерфейсы классов были видны Interface Builder?
Обновить: Правильный ответ относится к перетаскиванию заголовков в "XIB browser".Файлы '.h' можно перетащить из окна finder в область окна, указанную на этом изображении:
альтернативный текст http://img211.imageshack.us/img211/1221/xibbrowser.png
Решение
Попробуйте перетащить статическую библиотеку в свой xib-браузер в Interface Builder.Я не пробовал это со статической библиотекой, но концепция та же.Когда вы перетаскиваете файлы заголовков в IB, вы можете получить доступ к этим классам.
Другие советы
LexH, попробуйте связать с флагом -ObjC при создании вашей статической библиотеки.У меня это сработало...около года :-) Я нашел этот пост, поскольку проблема вернулась при новой установке OSX и обновлении в xcode.Но это работало в XCode 3.1.2.
- Дэвид
Добавьте ту же проблему, что и LexH.Это сработало только тогда, когда я вызвал фиктивный метод класса.Проблема заключалась в том, что я не добавил свою статическую библиотеку в раздел "связать двоичный файл с библиотеками" в разделе target.Как ни странно, все остальное сработало.
Я следовал этому руководству, чтобы установить связь с моей статической библиотекой Создать статическую библиотеку
У меня была такая же проблема.Перетаскивание библиотеки или заголовков в XIB Browser не сработало.Чтение файлов классов не сработало.Поэтому я позвонил:
[MyLibraryClass version]; // Substitute your class name for "MyLibraryClass".
Это сработало.version - это метод класса NSObject, поэтому все подклассы NSObject наследуют его.