为什么这个UIAlertView不能立即显示?

时间:2014-05-24 15:04:02

标签: ios objective-c uialertview

我有很多类似于这个完美工作的UIAlertView。 这个不会立即显示,这会导致我的应用程序出现无法形容的悲伤。

myFantasticViewController.h

@interface myFantasticViewController:UIViewController <UIAlertViewDelegate, UIGestureRecognizerDelegate, UITextFieldDelegate, UITextViewDelegate>

-(void)handleUserDefinedStationWarning:(NSError *)error;

myFantasticViewController.m

-(void)handleUserDefinedStationWarning:(NSError *)error
{
NSString *errorMessage = [error localizedDescription];
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"",
                                                                              @"Title for alert displayed when the user-defined station both lat/lon are zero.")
                                                    message:errorMessage
                                                   delegate:self
                                          cancelButtonTitle:@"Ok"
                                          otherButtonTitles:@"Cancel", nil];
[alertView show];
}

这是触发alertview的代码:

NSString *message = [NSString stringWithFormat:@"Touch OK to continue without specifying the latitude and longitude."];
NSDictionary *userInfo = [NSDictionary dictionaryWithObject:NSLocalizedString(message, @"Message displayed when a user-defined station lat/lon are both zero.")
                                                             forKey:NSLocalizedDescriptionKey];
NSError *error = [NSError errorWithDomain:@"myFantasticViewController" code:0000 userInfo:userInfo];
[self handleUserDefinedStationWarning:error];

......一些代码......这些陈述立即执行;运行代码后会弹出alertview,这会导致混乱。

1 个答案:

答案 0 :(得分:0)

问题解决了。

我遇到所有这些悲伤的原因是因为CPU正在完成我告诉它要做的事情。 我将在alertView显示之前执行的代码移动到clickedButtonAtIndex方法中。 我没有给操作系统时间显示alertView,并且在alertView显示之前正在继续执行预期的代码。