Как можно предотвратить мульти UIAlertView одновременно? - PullRequest
0 голосов
/ 31 марта 2011

мое приложение использует 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 голосов
/ 31 марта 2011

Это, вероятно, связано с тонкостями потоков. Вы можете использовать NSNotificationCenter для отправки сообщения в поток пользовательского интерфейса, который отображает сообщение и отслеживает, показывает ли оно или нет.

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

И, конечно, подпишитесь на это сообщение в своей основной ветке (возможно, AppDelegate), прежде чем использовать приведенный выше код:

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