我正在努力正确/干净地创建 iOS 静态库。
到目前为止,我已经使用扩展 a 在内部(私有(private)).h 声明和公共(public) .h 声明(导出)之间创建了分隔。
我已经“成功”创建了该库并看到它正在运行。但是我仍然在公共(public) WTDevice.h 中公开类声明
@interface WTDevice : NSObject <WTMinorStateDelegate,CBPeripheralDelegate>
由于 WTDevice 继承自 WTMinorStateDelegate,我也必须导出协议(protocol) WTMinorStateDelegate,但我不希望这样做,因为这仅在库中使用。
顺便说一句,WTDevice 扩展位于 WTDevice_internal.h 中,该扩展不会被导出。
我确信有一种方法可以放置这条线:
@interface WTDevice : NSObject <WTMinorStateDelegate,CBPeripheralDelegate>
进入 WTDevice.m(使其私有(private)),但到目前为止我失败了。问题是当我从 WTDevice.h 文件中删除它时,什么会替换它?
谢谢
最佳答案
在 WTDevice.m 中,在 @implementation block 之前添加此内容以创建私有(private)类别。
@interface WTDevice () <WTMinorStateDelegate>
@end
在 WTDevice.h 中,从 @interface 行中删除 WTMinorStateDelegate。
关于ios - Obj-c 为静态库导出 .h 文件 - 不想公开类定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20975692/