解除警报后的操作会导致延迟

Operations After UIAlert is dismissed causes dealays

我目前正在为我的应用程序制作注册表。一旦用户点击注册按钮,就会向用户发出警报以确认号码并继续。

警报截图:

如果用户点击取消,我将执行以下操作:

/*** Reset Mobile Number Input ***/
                        self.flagMobileNumber = 0
                        self.validatorIconMobileNumber.setImage(nil, forState: UIControlState.Normal)
                        self.mobileNumberInput.text = ""
                        self.mobileNumberInput.becomeFirstResponder()

                    /*** Disable Register Button ***/
                        self.registerButton.alpha = 0.5
                        self.registerButton.userInteractionEnabled = false

但是在完成所有操作之前会出现相当大的延迟。

有人可以解释为什么会发生这种情况以及可以采取什么措施来防止这种情况发生。

您可能不在主线程上,UI 不鼓励在其他线程(主线程以外的线程)上做事情,这通常需要时间。

尝试在主线程上做 UI 事情:

dispatch_async(dispatch_get_main_queue(), ^{
// do UI stuff here
});