我有一个虚空。这个虚空做的事情确实很慢,所以在Void开始时我发出警报,最后我又发出警告。像这里:
-(void)action {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Start" message:@"Start." delegate:self cancelButtonTitle:@"Ok." otherButtonTitles:nil];
[alerta show];
[alert release];
//Something really slow
UIAlertView *alertEnd = [[UIAlertView alloc] initWithTitle:@"End" message:@"End." delegate:self cancelButtonTitle:@"Ok." otherButtonTitles:nil];
[alertEnd show];
[alertEnd release];
}
但是当我运行此代码时,警报只会在所有缓慢操作后显示在Void的末尾。
我该如何解决这个问题?
答案 0 :(得分:0)
你必须将两种方法分开,然后使用
调用一种方法[self performSelector: afterDelay:]
方法
答案 1 :(得分:0)
首先:尽量避免使用许多警报,因为它对您的用户来说并不人性化。改为显示UIActivityIndicator。
如果必须,请尝试使用此代码显示第一个警告:
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Start" message:@"Start." delegate:self cancelButtonTitle:@"Ok." otherButtonTitles:nil];
[alert performSelector: @selector(show)
onThread: [NSThread mainThread]
withObject: nil
waitUntilDone: NO];