需求:项目要求将OC的接口封装成C++的接口,有一个设备接入和移除的回调,是在OC层监听的,现在需要传到C++层,
C++接口在初始化的时候会传进来一个回调函数;
实现:
1、C++文件中 定义一个 回调函数类型的变量,用于接收上层传进来的回调函数 并在在传递回调函数的函数中对变量赋值
CallBackType g_CallBack = NULL;
2、C++文件中 声明、实现一个 外部引用的函数
声明:
extern "C" void CallBack(bool status);
实现:
void CallBack(bool status)
{
if(Manager::shareInstance()-> g_CallBack != nullptr){
Manager::shareInstance()-> g_CallBack(status);
}
}
3、OC文件中 引用外部声明,并且调用回调函数传值
extern void CallBack(bool status);
-(void)test
{
CallBack(status);
}
注意:OC文件不能以 .mm 命名,会导致找不到CallBack方法;