158 votes

Qu'est-ce que TIC Read Status 1:57 dans iOS11 / Xcode 9?

Après la mise à jour vers Xcode 9, avec Swift 3 et le simulateur iPhone X, ma console est pleine de:

 TIC Read Status [11:0x0]: 1:57
TIC Read Status [11:0x0]: 1:57
TIC Read Status [11:0x0]: 1:57
...
 

Qu'est-ce que c'est et comment puis-je le réparer? L'aide est très appréciée.

PS: Je préfère ne pas simplement le "faire taire" avec un Environment Variable dans le schéma de construction.

182voto

rgoncalv Points 2045

Apple personnel a donné la réponse suivante:

TIC développe "TCP connexion d'e/S", qui est un sous-système à l'intérieur de CFNetwork qui exécute une connexion TCP

1 et 57 sont les CFStreamError de domaine et le code, respectivement; un domaine de 1 est kCFStreamErrorDomainPOSIX et, dans ce domaine, 57 est ENOTCONN

En bref, un TCP de lecture a échoué avec ENOTCONN.

Comme le TCP connexion d'e/S sous-système n'a pas d'API publique, vous devez nécessairement être de l'utiliser via un wrapper de haut niveau (comme NSURLSession).

source: https://forums.developer.apple.com/thread/66058

EDITION/MISE À JOUR:

Puisque nous sommes encore tous ces ennuyeux des journaux, j'ai demandé à le même spécialiste Apple à partir du lien ci-dessus au sujet de notre situation, qui est désormais pour Xcode 9 et rapide 4. Ici, il est:

Beaucoup de gens se plaignent de ces journaux, qui je vais avoir ainsi, dans toutes mes applications depuis que j'ai mis à niveau vers Xcode 9 / iOS 11.

2017-10-24 15:26:49.120556-0300 MyApp[1092:314222] TIC Read Status [55:0x0]: 1:57  
2017-10-24 15:26:49.120668-0300 MyApp[1092:314222] TIC Read Status [55:0x0]: 1:57  
2017-10-24 15:26:49.626199-0300 MyApp[1092:314617] TIC Read Status [56:0x0]: 1:57

Sa réponse:

Il est important de réaliser que cette ENOTCONN ne signifie pas nécessairement que quelque chose a mal tourné. Fermé les connexions TCP sont attendus dans toutes les versions de HTTP. Donc, sauf si il y a certains autres symptômes associés à cette erreur, ma recommandation est que vous l'ignorez.

source: https://forums.developer.apple.com/message/272678#272678

SOLUTION: il suffit d'attendre les nouvelles versions et les mises à jour de Xcode 9.

41voto

0rt Points 640

Voici comment TIC Read Status [11:0x0]: 1:57 se décompose:

TIC développe "TCP connexion d'e/S", qui est un sous-système à l'intérieur de CFNetwork qui exécute une connexion TCP

11 est un IDENTIFIANT de connexion nombre dans les TIC

0x0 est un pointeur vers le TIC de l'objet lui-même

1 et 57 sont les CFStreamError de domaine et le code, respectivement; un domaine de 1 est kCFStreamErrorDomainPOSIX et, dans ce domaine, 57 est ENOTCONN

Source: https://forums.developer.apple.com/thread/66058

35voto

lal Points 1915

Remarque: Comme quoi @David mentionnées dans le commentaire, c'est une façon de masquer les avertissements, afin d'utiliser ce lancement argument pour éviter de recevoir de nombreux messages répétitifs et propre console. Une fois cela fait, le débogage, le garder désactivé tant que la console n'est pas de fournir de l'information utile lorsqu'elle est activée. Par exemple libc++abi.dylib: terminating with uncaught exception of type NSException.

Pour les personnes qui se demandent comment le silence de l'avertissement et jusqu'à ce qu'une meilleure solution est disponible, vous pouvez garder les variables suivantes à portée de main et de basculer en tant que de besoin.

Utiliser OS_ACTIVITY_MODE = disable variable d'environnement dans les Arguments dans le produit des stratagèmes pour éviter de console inondé avec de tels avertissements.

Note B: lui Permettre de voir l'effet.

Source: https://medium.com/@adinugroho/disable-os-logging-in-xcode-8-ec6d38502532

enter image description here

6voto

Tristan Leblanc Points 71

La meilleure façon que j'ai trouvée, à propos de ce message de journal et de quelques autres ( comme NSURLSession des erreurs qui ne sont pas nécessairement des erreurs ) est d'avoir mon propre journal fonctions.

class Logger {
    static var project: String = "MyProject"

    static func log(_ string: String, label: String = "") {
        DispatchQueue.main.async {
            print("[\(Logger.project)] \(label) : \(string)")
        }
    }

    static func info(_ string: String) {
        Logger.log(string)
    }

    static func warning(_ string: String) {
        Logger.log(string, label: "WARNING")
    }

    static func error(_ string: String) {
        Logger.log(string, label: "ERROR")
    }
}

Ensuite, j'ai simplement type [MyProject] dans le volet de la console en bas à droite du filtre, et c'est tout.

Notez que par l'appel d'impression sur la file d'attente principale, il permet à votre enregistreur à être utilisé à partir de fils sans mélanger votre console.

Prêt à être amélioré et modifié pour répondre à vos besoins :)

0voto

Anuj Nigam Points 1

J'avais ce même problème où je recevais '}' en réponse à un service REST (GET).

En utilisant:

 URLCache.shared.removeCachedResponse(for: request as URLRequest)
 

après avoir fait ma demande d'URL et réinitialisé mon objet URLSession après avoir obtenu la réponse sous la forme:

 session.reset(completionHandler: {
  // print(\(data))                          
})
 

Résolu mon problème.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X