Я использую стороннее программное обеспечение для написания приложения iPad с использованием Xcode 4.3.2. Программное обеспечение является открытым исходным кодом и обычно устанавливается таким образом, что его код будет скомпилирован вместе с любым кодом, который разработчик пишет для приложения. Поскольку я использовал программное обеспечение во многих местах, я решил создать его как статическую библиотеку для iOS-симулятора.Метод непризнанной категории вызова вызывающего абонента в статической библиотеке iOS
Мне удалось создать библиотеку и преобразовать одно приложение для связи с этой библиотекой вместо компиляции исходного исходного кода. Однако, когда я иду запускать приложение на симуляторе, я получаю сообщение об ошибке: нераспознанный селектор отправлен в экземпляр.
Я проверил, что программа успешно использует части статической библиотеки. Тем не менее, есть одна часть кода, которая пытается вызвать метод для объекта и что там происходит сбой. Вызываемый метод на самом деле не определен в интерфейсе этого объекта. Скорее, он предоставляется в дополнительном модуле, который определяет категорию для этого класса объекта. Заголовочный файл для этого модуля должным образом включен, и компилятор должен был найти метод категории и применить его к объекту, но во время выполнения возникает ошибка, упомянутая выше.
Я использовал команду «nm», чтобы убедиться, что метод категории существует в статической библиотеке. Вот пример вывода:
nm libStaticLibrary.a | grep categoryMethod
00000130 t -[SomeClass(Category) categoryMethod:]
0000354c s -[SomeClass(Category) categoryMethod:].eh
Какие идеи у людей о том, как эта библиотека может быть сделано правильно работать с нужным приложением?
Добавить -ObjC флаг компоновщика, как описано здесь: HTTP: // StackOverflow .com/questions/2567498/object-c-categories-in-static-library –
-load_all также работает. – CodaFi
Возможный дубликат [ссылки объективных категорий c в статической библиотеке] (http://stackoverflow.com/questions/6820778/linking-objective-c-categories-in-a-static-library) –