UIAlertController动作回调性能

时间:2016-11-18 00:22:08

标签: ios objective-c uialertcontroller

我在Objective-C中发现了一个奇怪的UIAlertController行为。我在其中添加了两个动作,但是当用户选择任何动作时我发现 - 处理程序回叫在大约1秒后调用。我想知道为什么这种延迟发生回调。是否有可能以任何方式避免这种情况?

 - (IBAction)openAlert:(id)sender {
        UIAlertController * alert=   [UIAlertController
                                      alertControllerWithTitle:@"Info"
                                      message:@"You are using UIAlertController"
                                      preferredStyle:UIAlertControllerStyleAlert];

        UIAlertAction* okBtn = [UIAlertAction
                             actionWithTitle:@"OK"
                             style:UIAlertActionStyleDefault
                             handler:^(UIAlertAction * action)
                             {
                                 // Delay ~ 1 sec to get control here
                                 self.view.backgroundColor = [UIColor blackColor];
                             }];
        UIAlertAction* cancelBtn = [UIAlertAction
                                 actionWithTitle:@"Cancel"
                                 style:UIAlertActionStyleCancel
                                 handler:^(UIAlertAction * action)
                                 {

                                 }];

        [alert addAction:okBtn];
        [alert addAction:cancelBtn];

        [self presentViewController:alert animated:YES completion:nil];
    }

它在主线程上。为了确保我在下面的代码片段中尝试过。

  dispatch_async(dispatch_get_main_queue(), ^{

           // Alert view code
            });

0 个答案:

没有答案