2017-09-18 1 views
2

Quelqu'un peut-il m'aider à déboguer ce problème, à partir du moment où j'ai commencé à travailler avec Xcode 9 GM seed avec iOS 11 GM seed, mon jet de code moi un avertissement dans la console en disant:Vérificateur de threads principal: API d'interface utilisateur appelée sur un thread d'arrière-plan iOS 11 Xcode 9 GM Seed

2017-09-18 16:22:52.872716+0530 **** *****[359:20158] [reports] Main Thread Checker: UI API called on a background thread: -[UIApplication 
    applicationState] .PID: 359, TID: 20158, 
    Thread name: Runtime Network Callback Thread, 
    Queue name: com.apple.root.default-qos.overcommit, QoS: 21 
    Backtrace: 

aussi, je suis en utilisant des cartes Esri dans ma demande, chaque fois que je effectuer un zoom avant ou un zoom sur les cartes Esri que je reçois cette erreur:

2017-09-18 16:22:53.176524+0530 *** ***[359:20063] Task <5F9376DB-9335- 
    4A45-B3F0-1D6FD69A19A3>.<29> finished with error - code: -999 
    2017-09-18 16:22:53.178923+0530 *** ***[359:20142] Task <0DE282EA-3FBD- 
    4036-8298-C75EFA65F15A>.<40> HTTP load failed (error code: -999 [1:89]) 
    2017-09-18 16:22:53.179821+0530 *** *[359:20063] Task <BE2D8BAE-FFB8- 
    43CA-8723-111326DEF4FD>.<31> finished with error - code: -999 
    2017-09-18 16:22:53.180089+0530 *** ***[359:20063] Task <E7C819D4-C11A- 
    4915-B021-A73F31BE89CD>.<33> finished with error - code: -999 
    2017-09-18 16:22:53.180365+0530 *** ***[359:20063] Task <3B871761-B006- 
    4220-B857-6204B385AD34>.<34> finished with error - code: -999 
    2017-09-18 16:22:53.180523+0530 *** ***[359:20142] Failed to get 
    TCPIOConnection in addInputHandler. 

L'application fonctionne correctement avec Xcode 8 iOS 10.3.3. Le problème semble être avec Xcode 9. Quelqu'un peut-il m'aider s'il vous plaît dans le débogage de ce problème. Merci

+0

Avoir la même chose "fini avec un code d'erreur: -999". Serait intéressant de savoir comment le réparer. –

Répondre

3

Xcode 9 ajoute un nouveau contrôle d'exécution qui est le Main Thread Checker.

Selon documentation Apple:

The Main Thread Checker is a standalone tool for Swift and C languages that detects invalid usage of AppKit, UIKit, and other APIs on a background thread. Updating UI on a thread other than the main thread is a common mistake that can result in missed UI updates, visual defects, data corruptions, and crashes.

Vous avez déjà eu ce problème dans votre application avec Xcode 8. Il est juste que l'outil pour détecter ce n'était pas encore là.

Dans votre cas, il semble que ce soit un appel à UIApplication.shared.applicationState qui provoque ce problème d'exécution.

Vous pouvez configurer votre schéma d'application pour qu'il arrête l'exécution lorsque cela se produit. Il s'agit d'une case à cocher dans l'onglet Diagnostics, sous la section Main Thread Checker.