我想调用一个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 ++类或函数,我应该创建一个桥接文件。 在那种情况下,它工作正常,但上面的情况我不知道。