C++使用OC的NSNotificationCenter

使用.mm文件可以使C++代码调用OC的函数,但是这仅仅是调用类似的这种[name fun]格式的,当想使用OC的NSNotificationCenter的时候,会发现在调用selector的时候不知道怎么弄。

就像这个下面的代码:

[[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(notificationHandler:) 
                                                 name:@"notify"
                                               object:nil];

这里面的函数没法直接用,但是在接入一些sdk的时候,比如xy的,就必须使用OC的NSNotificationCenter来监听,所以可以采取这种办法,就是调用不同的方法:

void XYSDKController::XYLogin()
{
    [[NSNotificationCenter defaultCenter] addObserverForName:kXYPlatformLoginNotification object:nil queue:nil usingBlock:^(NSNotification *note) {
        xyplatformLoginNoti();
    }];
}
void XYSDKController::xyplatformLoginNoti()
{
//这里再调用其他的函数
}

当然还有外国的大神们说了另外种方法就是重构函数,和引入oc等。原文网址看这里:http://stackoverflow.com/questions/6062299/how-to-add-an-observer-to-nsnotificationcenter-in-a-c-class-using-objective-c

Last modification:January 1st, 1970 at 08:00 am
如果看了这个文章可以让你少加会班,可以请我喝杯可乐
已打赏名单
微信公众号

Leave a Comment