ios - Obj-c 为静态库导出 .h 文件 - 不想公开类定义

标签 ios objective-c static-libraries

我正在努力正确/干净地创建 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/

相关文章:

ios - 自定义 UIButton 类,是否有被点击事件?

ios - 反转 UIView 的位置,带动画

iphone - Cocoa Touch 是否有与 Adob​​e Flex 的 HBox 或 VBox 等效的 UIView 或组件?

c++ - 延迟第三方库中静态变量的初始化

ios - 在 UIView (Swift) 中绘制圆形切口

iOS CoreML mlmodel文件自动生成swift版模型类文件

objective-c - 如何解析不带引号的 JSON 及其 KEY 字符串?

iphone - 通过iOS无法保存核心数据对象

c++ - 对另一个静态库中的静态库方法的 undefined reference

c - 编译古巴图书馆