如何在等待UIAlertView响应时暂停代码执行?

问题描述:

我有UIAlertView,我需要根据用户的响应决定运行哪个代码(取决于用户按下YES/NO的按钮)我已经找到了一些解决方案,但它们都不适用于我:如何在等待UIAlertView响应时暂停代码执行?

为了把代码的其余部分在

-(void)alertView : (UIAlertView *)alertView clickedButtonAtIndex : (NSInteger)buttonIndex 

功能,但事情是,所以我需要在原有的功能,这使得代码我的警报并没有在每次执行的,但只有在特定情况下运行这个解决方案对我来说不可能

要使用的标志(点击)这表明该按钮被按下,并使用下面的代码行:

while (!clicked) [[NSRunLoop currentRunLoop] runUntilDate:[NSDate distantFuture]]; 

但是当我使用它,我不能压在UIAlert的按钮,我的意思是,它不会回应。 然后我发现有一点不同的解决方案,有人声称,它的作品对他来说,原来的代码是C#,但在OBJ-C这将是:

while (!clicked) [[NSRunLoop currentRunLoop] runUntilDate:[[NSDate date] dateByAddingTimeInterval:0.5]]; 

但在这种情况下,我也得到同样的响应问题。

请帮我做一个解决方案工作或建议另一个。

谢谢

亚历

alertview的第一种情况代表的是最简单的方法

if(showalert==true)//there will be a case to show alert or not 
{ 
show alert implement rest of code in delegate 
} 
else 
{ 
write the rest of code here, if alertview is not called it will execute 
} 
+0

谢谢你,但它不够好适合我,因为这段代码中我必须做一些变量是原始函数的私有变量,我不想让它们成为全局变量。 – 2013-05-08 15:01:16