我想只将静态库中的选定方法暴露给外面的类。 有办法吗?
答案 0 :(得分:1)
这与Objective-C的工作方式不可能实现。您可以做的最好的方法是不通过在内部标题(在类继续或类别中)声明它们而不是发布给库用户来发布这些方法。使用classdump之类的工具或运行时API,仍然可以找到并调用这些方法。
答案 1 :(得分:1)
这是关于这样做的方法:
将您想要私有的方法放在一个单独的类别中。例如。 MyClass的+ PrivateMethods
确保这些MyClass + PrivateMethods.h文件未包含在复制标头构建阶段的公共部分中,因此使用静态库的用户无法看到它们。 (确保您了解复制标题的三个不同选项 - 公共,私有和项目)。
#include这些MyClass + PrivateMethods.h文件,您需要在静态库的实现文件(.m)中使用它们。