2016-03-19 1 views
0

Je suis en train de créer un formulaire d'inscription pour mon application. Une fois que l'utilisateur appuie sur le bouton Enregistrer, une alerte est donnée à l'utilisateur pour confirmer le numéro et continuer.Opérations après le rejet d'UIAlert provoque des transactions

Capture d'écran d'alerte:

enter image description here

Si l'utilisateur clique Annuler effectuer les opérations suivantes:

/*** 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 

Mais il y a un retard considérable qui se produit avant que toutes les opérations sont terminées. Quelqu'un peut-il expliquer pourquoi cela se produit et que peut-on faire pour l'empêcher?

+0

Qu'est-ce qu'un « retard considérable »? 0,5 seconde? 5 secondes? Vous ne nous avez pas montré votre méthode complète de délégation d'alertes, êtes-vous sûr que le retard est dû au code que vous avez posté? Si oui, pourquoi? Astuce: Essayez d'ajouter des appels 'NSLog' à des points stratégiques, ils impriment l'heure actuelle afin que vous puissiez voir où passer le plus de temps. – DarkDust

Répondre

1

Vous n'êtes probablement pas sur le thread principal, faire des choses UI sur un thread différent (autre que le thread principal) est déconseillé, et prend généralement du temps.

essayer de faire vos trucs de l'interface utilisateur sur le thread principal:

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