为什么在使用GCD时,UIAlertController显示延迟或未显示?

时间:2016-11-30 18:41:50

标签: objective-c uialertcontroller ios9.1

我有这个代码,它可以从另一个类调用:

    //  send message not to turn off machine and display network indicator
[cm displayAlert: @"Warning" andData: @"Database restore is about to begin; DO NOT turn iPad OFF during restore!" andTag:0 andViewController:self];

这是代码:

#pragma mark -  displayAlert
- (void) displayAlert: (NSString *)alertTitle andData: (NSString *) alertMessage andTag: (int) tag andViewController: vc  {

UIAlertController *alertController = [UIAlertController
                                      alertControllerWithTitle:alertTitle
                                      message:alertMessage
                                      preferredStyle:UIAlertControllerStyleAlert];

UIAlertAction *cancelAction = [UIAlertAction
                               actionWithTitle:NSLocalizedString(@"Cancel", @"Cancel action")
                               style:UIAlertActionStyleCancel
                               handler:^(UIAlertAction *action)
                               {
                                   NSLog(@"Cancel action");
                               }];

UIAlertAction *okAction = [UIAlertAction
                           actionWithTitle:NSLocalizedString(@"OK", @"OK action")
                           style:UIAlertActionStyleDefault
                           handler:^(UIAlertAction *action)
                           {
                               NSLog(@"OK action");
                           }];

[alertController addAction:cancelAction];
[alertController addAction:okAction];

dispatch_async(dispatch_get_main_queue(), ^{
  [vc presentViewController:alertController animated:YES completion:nil];
});
}

问题是演示文稿要么延迟要么根本没有显示。我使用了GCD代码,其中很多(如果不是全部)SO上的例子显示......可能导致这种延迟的原因是什么?

0 个答案:

没有答案