Obj-c.h函数原型中需要C ++结构

时间:2016-06-18 13:08:48

标签: c++ objective-c

我编写了一个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标头可以在包装器中编译和公开方法?

1 个答案:

答案 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)