我正在努力正确/干净地创建iOS静态库。

到目前为止,我已经使用Extension a在内部( private ).h声明和 public .h声明(已导出)之间创建了分隔。

我已经“成功”创建了该库,并看到它正在工作。但是我仍然在 public WTDevice.h中公开类声明。

@interface WTDevice : NSObject <WTMinorStateDelegate,CBPeripheralDelegate>

由于WTDevice继承自WTMinorStateDelegate,因此我也必须导出协议WTMinorStateDelegate,我不希望这样做,因为它仅在库中使用。

顺便说一句,WTDevice扩展名在WTDevice_internal.h中,没有导出。

我敢肯定有一种方法可以做到这一点:
@interface WTDevice : NSObject <WTMinorStateDelegate,CBPeripheralDelegate>

进入WTDevice.m(将其设为 private ),但是到目前为止,我还是失败了。问题是,当我从WTDevice.h文件中删除它时,它将替换掉什么?

谢谢

最佳答案

在WTDevice.m中,在@implementation块之前添加它以创建 private 类别。

@interface WTDevice () <WTMinorStateDelegate>
@end

在WTDevice.h中,从@interface行中删除WTMinorStateDelegate。

关于ios - Obj-c为静态库导出.h文件-不想公开类定义,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20975692/

10-13 09:41