我有一个名为Client的类,该类使用C ++编写,它从服务器接收消息,并且每当收到消息时,我都想向用户显示已收到什么文本的警报?只需要将消息通知给控制器即可。我搜索了很多块,找不到任何示例。谁能给我一个示例代码来传递数据吗?
在.cpp文件中,此功能将在收到消息时触发
Build Variant
如果收到文本,我想向用户显示弹出窗口。
我有一个名为Client的类,该类使用C ++编写,它从服务器接收消息,并且每当收到消息时,我都想向用户显示已收到什么文本的警报?只需要将消息通知给控制器即可。我搜索了很多块,找不到任何示例。谁能给我一个示例代码来传递数据吗?
在.cpp文件中,此功能将在收到消息时触发
Build Variant
如果收到文本,我想向用户显示弹出窗口。
在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());
}