如果网络出现故障,我的应用会使用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?
答案 0 :(得分:0)
这可能与线程的复杂性有关。您可以使用NSNotificationCenter
向显示消息的UI线程发送消息,并跟踪消息是否显示。
[[NSNotificationCenter defaultCenter] postNotificationName:@"SomeMessageName" object:self];
当然,在使用上面的代码之前,请在主线程(可能是AppDelegate)中订阅此消息:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(showAlertView) name:nil object:nil];