【发布时间】:2015-04-29 07:58:03
【问题描述】:
我在我的 Objective-C 项目中使用由其他人构建的静态库。库中有一个我想调用的 C 方法,但它没有被导出。如何在 Objective-C 代码中调用这个方法?
【问题讨论】:
标签: objective-c c static-libraries reverse-engineering
我在我的 Objective-C 项目中使用由其他人构建的静态库。库中有一个我想调用的 C 方法,但它没有被导出。如何在 Objective-C 代码中调用这个方法?
【问题讨论】:
标签: objective-c c static-libraries reverse-engineering
首先:你为什么需要它?显然,该框架的作者没有看到任何需要这样做,如果直接执行一个方法,事情可能会中断。
但是:使用该方法在接收器上编写一个类别,然后执行此操作。 Objective-C 是动态绑定的,所以这是可行的。
@interface FrameworkClass(InternalMethodAddition)
- (void)internalMethod;
@end
// Do not implement this category.
…
FrameworkClass *object = …
[object internalMethod];
【讨论】:
foo().