如何同时防止多UIAlertView?

时间:2011-03-31 03:31:32

标签: iphone ipad uialertview

如果网络出现故障,我的应用会使用UIAlertView。 我使用多网络请求异步。

当网络同时发生故障时, UIAlerView一遍又一遍地展示。

我尝试设置bool变量控制器。但是UIAlertView同时显示方法调用。是的,它是相同的微秒......

if (!self.isAlertAlreadyShow) {
    self.isAlertAlreadyShow = YES;
    UIAlertView *alert = [[UIAlertView alloc] 
                          initWithTitle:NSLocalizedString(@"fail_data_title", nil)
                          message:NSLocalizedString(@"fail_data_message", nil) 
                          delegate:nil
                          cancelButtonTitle:NSLocalizedString(@"close", @"close") 
                          otherButtonTitles:nil];
    [alert show];
    [alert release];
}

如何只显示一个UIAlerView?

1 个答案:

答案 0 :(得分:0)

这可能与线程的复杂性有关。您可以使用NSNotificationCenter向显示消息的UI线程发送消息,并跟踪消息是否显示。

[[NSNotificationCenter defaultCenter] postNotificationName:@"SomeMessageName" object:self];

当然,在使用上面的代码之前,请在主线程(可能是AppDelegate)中订阅此消息:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(showAlertView) name:nil object:nil];