OC\C++实现回调

         Object C 与 C++ 混编的时候,是不能用Cocoa 自带的委托机制来实现回调的。比如在做一些多平台的项目时,由于接口是c++编写的,这个时候你要怎么样去将接口函数里的数据传递到你Object C编写的对象中去呢。最简单的方法就是使用ios消息机制-Notification,来传递从接口收到的数据。但是接口过多,注册太多Notifications,就会导致程序的开销很大。这个时候,选择函数指针实现回调,既可以实现功能,又可以减少系统开销。

       例子:

CallBackHandler.h
// 定义函数指针类型
typedef void (*MessageHandler)(void *userData,const char *msg);
 
class CallBackHandler 
{
 
public:
    CallBackHandler();
    ~CallBackHandler();
    
    // 处理回调的函数
    void handleInformation(const char* info);
    
    // 注册回调的函数
    void registerCallBackFunction(void *,MessageHandler);
    
private:
    
    // 要实现这个回调的对象
    void *userData;
    
    // 函数声明
    MessageHandler messa

你可能感兴趣的:(C/C++开发实战365,指针)