Интерфейсный Разработчик не может видеть классы в статической библиотеке - PullRequest
13 голосов
/ 29 июня 2009

Я преобразовал некоторые подклассы UIView в статическую библиотеку. Однако при использовании Interface Builder для создания компонентов представления для проекта, использующего статическую библиотеку, я обнаружил, что он не знает о классах библиотеки. Что мне нужно сделать, чтобы интерфейсы классов были видны Интерфейсному Разработчику?

Обновление: Правильный ответ относится к перетаскиванию заголовков в «браузер XIB». Файлы .h можно перетащить из окна поиска в область окна, указанную на этом изображении:

альтернативный текст http://img211.imageshack.us/img211/1221/xibbrowser.png

Ответы [ 4 ]

8 голосов
/ 29 июня 2009

Попробуйте перетащить статическую библиотеку в ваш xib-браузер в Интерфейсном Разработчике. Я не пробовал это со статической библиотекой, но концепция та же самая. Когда вы перетаскиваете заголовочные файлы в IB, вы можете получить доступ к этим классам.

4 голосов
/ 27 августа 2009

LexH, попробуйте связать с флагом -ObjC при сборке статической библиотеки. Это работало для меня ... около года :-) Я нашел этот пост, так как проблема вернулась со свежей установкой OSX и обновлением в xcode. Но это работало в XCode 3.1.2.

  • David
1 голос
/ 23 января 2010

У меня была такая же проблема. Перетаскивание библиотеки или заголовков в браузер XIB не сработало. Чтение файлов классов не сработало. И я позвонил:

[MyLibraryClass version];    // Substitute your class name for "MyLibraryClass".

Это сработало. version - это метод класса NSObject, поэтому все подклассы NSObject наследуют его.

1 голос
/ 24 ноября 2009

Добавьте ту же проблему, что и LexH. Это сработало только тогда, когда я вызвал фиктивный метод класса. Проблема заключалась в том, что я не добавил свою статическую библиотеку в «связывание бинарных файлов с библиотеками» в целевой папке. Странно все остальное работало.

Я следовал этому руководству для связи со своей статической библиотекой Создание статической библиотеки

...