Добавьте следующие объявления в 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());
}