如何将C ++回调函数作为变量传递给Swift代码中的C ++函数

时间:2014-10-20 08:36:32

标签: c++ ios objective-c swift

我想调用一个C ++函数,该函数还有另一个函数作为回调函数。

在Objective-C中,我就是这样做的:

cpp.h

typedef void (* FRAME_CALLBACK) (unsigned long, unsigned char *, unsigned long, long, long , VIDEO_B2_FRAME *);

Handle MOpen( void );

void MSetFrameCallback( Handle h, unsigned long param, FRAME_CALLBACK fnCallback );

然后在Objective-C代码中:

objc.m

Hnadle handle = MOpen();

MSetFrameCallback(handle, (id)self, frameCallback);


void frameCallback(id param, unsigned char *rawData, unsigned long dataLen, long width, long height, VIDEO_B2_FRAME *b2)
{
    ViewController *VC = (ViewController *)param;
    [VC updateFrameWithData:rawData dataLen:dataLen width:width height:height];
}

但是在Swift代码中我应该怎么做呢? 我无法弄清楚。

我知道如果我想使用ObjC或C ++类或函数,我应该创建一个桥接文件。 在那种情况下,它工作正常,但上面的情况我不知道。

0 个答案:

没有答案