2016-06-26 1 views
1

Je reçois cet avertissement avec ce code. Je vérifie en arrière-plan si une mise à jour est disponible. Et puis présentez une alerte. Evidemment Xcode et iOS n'aiment pas ma pensée ... des idées?Obtention de l'erreur suivante: Cette application modifie le moteur de mise en page automatique à partir d'un fil d'arrière-plan

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), { 

       if CheckAppUpdate().appUpdateAvailable("http://itunes.apple.com/lookup?id=xxxxxxxxxxxxx") == true { 

        self.showAlertForUpdate() 
       } 
      }) 

Répondre

1

Dans iOS tout le code de l'interface utilisateur doit courir sur le thread principal. Vous envoyez à un thread d'arrière-plan afin d'effectuer votre vérification de mise à jour, ce qui est correct, mais essayez ensuite de mettre à jour l'interface utilisateur à partir du même thread d'arrière-plan, ce qui provoque l'erreur que vous voyez. La solution consiste à ajouter un autre dispatch_async à l'intérieur du premier, en enveloppant l'appel à self.showAlertForUpdate(), mais en l'envoyant à la file d'attente principale (dispatch_get_main_queue(...) à la place.

+0

merci vous.Solu mon problème ... –