如果文章对您有用,麻烦顺手点一下文章的广告吧~

东东

C++使用OC的NSNotificationCenter
使用.mm文件可以使C++代码调用OC的函数,但是这仅仅是调用类似的这种[name fun]格式的,当想使用OC的...
扫描右侧二维码阅读全文
21
2015/08

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:August 16th, 2020 at 04:05 pm
如果觉得我的文章对你有用,请随意打赏: ☞已打赏列表

2 comments

  1. 忧郁的茄子

    [NSUserNotificationCenter defaultUserNotificationCenter],大佬,我这个方法返回nil怎么回事,我也是在c++中调用.mm文件中的方法。

    1. 东东
      @忧郁的茄子

      这个是系统的单例,用于通知模式的开发[NSNotificationCenter defaultCenter],你发的NSUserNotificationCenter是iOS用来发送本地通知提醒的东西,你理解错了吧

Leave a Comment