2015-02-26 2 views
0

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

ответ

1

Прежде всего: зачем это нужно? Очевидно, автор этой структуры не видел необходимости в этом, и что-то может сломаться, если метод выполняется напрямую.

Однако: Напишите категорию на приемнике с этим методом и просто сделайте это. Objective-C связывается динамически, так что это работает.

@interface FrameworkClass(InternalMethodAddition) 
- (void)internalMethod; 
@end 
// Do not implement this category. 
… 
FrameworkClass *object = … 
[object internalMethod]; 
+0

Спасибо Amin. Как вы сделаете это для статического глобального метода? Обычно метод просто вызывается как: 'foo()'. – arbesfeld

+1

Это не метод, а функция. Он не работает для функций, поскольку идентификаторы недоступны во время выполнения, а вызовы функций связаны статически. –

Смежные вопросы