将数据从.cpp文件传递到Objective c ViewController

我有一个名为Client的类,该类使用C ++编写,它从服务器接收消息,并且每当收到消息时,我都想向用户显示已收到什么文本的警报?只需要将消息通知给控制器即可。我搜索了很多块,找不到任何示例。谁能给我一个示例代码来传递数据吗?

在.cpp文件中,此功能将在收到消息时触发

Build Variant

如果收到文本,我想向用户显示弹出窗口。

Asongze123456789 回答:将数据从.cpp文件传递到Objective c ViewController

在Client.hpp中添加以下声明:

typedef const void* Controller;
typedef void (*OnMessageProcessed)(Controller,const std::string&);

将以下属性添加到Client

Controller messageHandler;
OnMessageProcessed onMessageProcessed;

要显示弹出窗口时(例如,在Client::processMessage的末尾),请致电onMessageProcessed(messageHandler,receivedMessage);

使用以下代码初始化Client

Client client;
client.messageHandler = (__bridge Controller)self; // self is your UIViewController instance
client.onMessageProcessed = onMessageProcessed;

YourCustomViewController.mm中声明以下全局函数:

void onMessageProcessed(Controller controller,const std::string& message) {
    YourCustomViewController* viewController = (__bridge YourCustomViewController*)controller;
    [viewController onMessageProcessed:message];
}

onMessageProcessed添加到YourCustomViewController

@interface YourCustomViewController: UIViewController
- (void)onMessageProcessed:(const std::string&)message;
@end

- (void)onMessageProcessed:(const std::string&)message {
    NSLog(@"%s",message.c_str());
}
本文链接:https://www.f2er.com/3168787.html

大家都在问