我编写了一个obj-c包装器来连接Swift和C ++。其中一种方法
- (bool) getParamInfo:(int) paramId parameter:(Parameter *) info;
需要c ++文件中的Parameter结构。
我尝试在obj-c标头中声明struct Parameter
但由于expected a type
错误而无法编译。
我无法将参数结构从c ++文件移动到obj-c.mm文件中。
如何解决此问题,以便objective-c标头可以在包装器中编译和公开方法?
答案 0 :(得分:0)
您可以通过包含包含参数结构
的C ++标头来实现 在Parameter.hpp中:
C ++标题typedef struct{
int paramId;
} Parameter;
Param.hh : Objective-C ++标题
#import "Parameter.hpp"
- (bool) getParamInfo:(int) paramId parameter:(Parameter *) info;
Swift-Bridging-Header.h :
#import "Param.hh"
#import "Parameter.hpp"
Swift文件中的
var pa = Parameter(paramId: 0) /* Create a struct */
let f = Param().getInfo(0, parameter: &pa)