从静态库调用非导出方法
Call non-exported method from static library
我在 Objective-C 项目中使用其他人构建的静态库。库中有一个我想调用的C方法,但没有导出。如何从 Objective-C 代码中调用此方法?
首先:你为什么需要它?显然,该框架的作者认为没有任何必要这样做,如果直接执行方法,事情可能会中断。
但是:用那个方法在接收器上写一个类别,然后就可以了。 Objective-C 动态绑定,因此有效。
@interface FrameworkClass(InternalMethodAddition)
- (void)internalMethod;
@end
// Do not implement this category.
…
FrameworkClass *object = …
[object internalMethod];
我在 Objective-C 项目中使用其他人构建的静态库。库中有一个我想调用的C方法,但没有导出。如何从 Objective-C 代码中调用此方法?
首先:你为什么需要它?显然,该框架的作者认为没有任何必要这样做,如果直接执行方法,事情可能会中断。
但是:用那个方法在接收器上写一个类别,然后就可以了。 Objective-C 动态绑定,因此有效。
@interface FrameworkClass(InternalMethodAddition)
- (void)internalMethod;
@end
// Do not implement this category.
…
FrameworkClass *object = …
[object internalMethod];