【发布时间】:2018-05-14 23:31:11
【问题描述】:
我需要在我的头文件中公开一个方法来接受来自第三方框架的类型的参数。方法存根如下所示:
- (void) onComplete:(RETURN_CODE (^)(BOOL isSuccess, NSData* tags))onComplete;
RETURN_CODE 是第三方框架中的 typedef 枚举,但不是典型的枚举定义。它看起来像这样:
typedef enum {
RETURN_CODE_DO_SUCCESS = 0,
RETURN_CODE_ERR_DISCONNECT = 0xFF01,
RETURN_CODE_ERR_CMD_RESPONSE = 0xFF02,
// continued...
}
当我尝试在我的头文件中导入它时,我收到错误“在框架模块中包含非模块化头”
在使用协议和类之前,我已经解决了这个问题,但我不确定如何解决 RETURN_CODE 类型的问题。我已经将“允许非模块化包含”选项设置为是。我的框架和第三方框架都包含在我的 swift 项目的桥接头中。
我的框架结构是这样的,A.h 导入 C.h,A.m 导入 B.h,B.h 导入 C.h。我不认为这应该是个问题?
由于我要导入的是第三方框架,我不确定是否可以更改它的目标成员资格。它已经包含在 Link Binary With Libraries 列表中。对于 lulz,我将其拖放到 Public headers 部分,但这并没有帮助。
我尝试制作一个模块映射文件,但这也没有改变任何东西。我不确定我是否正确创建了它,即使在删除桥接头后我也遇到了与以前相同的错误。
【问题讨论】:
标签: objective-c include header-files