Мне нужно вызвать UIAlertView для отображения из файла C ++. В зависимости от нажатой кнопки, мне нужно вернуть bool самому классу C ++ (этот bool, в свою очередь, возвращается и используется в другом месте). Я хотел бы получить несколько советов о том, как вернуть результат в класс C ++. Я предположил, что мы не можем установить класс C ++ в качестве делегата для UIAlertView, поэтому мне нужно как-то передать, какая кнопка нажата в классе C ++.
Это пример вызова функции из C ++ (это класс C ++, но скомпилированный как Objective-C:
bool CPlatform::WarningMessage(const wchar_t* message)
{
// Some functions to convert message to an NSString* wNSString
MessagePopUp *message = [[MessagePopUp alloc] init];
[message showPopUpWithMessage:wNSString];
// This function should return true if OK is pressed, or False if Cancel is pressed.
}
Тогда у меня есть простой класс для отображения предупреждения
@interface MessagePopUp : NSObject <UIAlertViewDelegate> {
BOOL OKPressed;
}
- (void) showPopUpWithMessage:(NSString*)message;
@end
@implementation MessagePopUp
- (void) showPopUpWithMessage:(NSString*)message
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Warning" message:message delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"OK", nil];
[alert show];
[alert release];
}
- (void)alertView:(UIAlertView *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex {
// the user clicked one of the OK/Cancel buttons
if (buttonIndex == 0)
{
NSLog(@"ok");
OKPressed = true;
}
else
{
NSLog(@"cancel");
OKPressed = false;
}
}
@end
Можете ли вы порекомендовать способ возврата результата / OKPressed в функцию C ++?
Спасибо