Мне нужно сделать блокировку UIAlertView
. Поскольку у меня есть функция, и мне нужно вернуть выбор UIAlertView
. Но проблема в том, что после показа UIAlertView
мой код функции выполняется дальше, поэтому я не могу поймать выбор UIAlertView
(я могу сделать это в методах делегата, но мне нужно вернуть результат функции).
Я пытался сделать UIAlertVIew
блокировку с NSCondition
. Но код не работает.
condition = [NSCondition new];
result = 0 ;
[condition lock];
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Fingerprint" message:@"test" delegate:window_self cancelButtonTitle:@"No" otherButtonTitles:@"Yes",nil];
[alert setDelegate:self];
[alert show];
while (result == 0) [condition wait];
[condition unlock] ;
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
[condition lock] ;
if (buttonIndex == 0)
{
result = 2;
}
else if (buttonIndex == 1)
{
result = 3 ;
}
[condition signal] ;
[condition unlock] ;
}
Может, как исправить этот код или какие-то другие предложения? Спасибо