C'est peut-être une question simple, mais en raison d'une compréhension claire entre print () et debug () print en swift, je suis incapable de comprendre où utiliser chacun d'eux.

61
Rajan Twanabashu 24 janv. 2017 à 14:08

4 réponses

Meilleure réponse

Vous utilisez debugPrint lorsque vous souhaitez plus d'informations sur ce qui est imprimé sur la console. Les informations supplémentaires sont généralement utiles pour le débogage.

print () - Ecrit les représentations textuelles des éléments donnés dans la sortie standard.

debugPrint () - Écrit les représentations textuelles des éléments donnés les plus appropriés pour le débogage dans la sortie standard.

Fondamentalement, debugPrint ajoute des informations supplémentaires utiles pour le débogage, telles que les informations de type, etc.

Un exemple:

print(1...5)
// Prints "1...5"


debugPrint(1...5)
// Prints "CountableClosedRange(1...5)"
54
Iggy 8 avril 2017 à 20:53

L'utilisation de print() est un moyen régulier de voir visuellement ce que vous créez. Il n'affiche pas les informations «non pertinentes» qui ne sont pas nécessaires pour représenter la variable imprimée.

Par exemple.

print("test")
// prints: test

L'utilisation de debugPrint() ajoute cependant le type inféré à la sortie.

Par exemple.

debugPrint("test")
// prints: "test"

Notez comment il ajoute les guillemets pour vous indiquer qu'il s'agit d'une chaîne.

Erica Sadun a créé un exemple parfait de la différence entre ces deux fonctions: Swift: journalisation

19
xoudini 24 janv. 2017 à 12:21

Si vous implémentez à la fois le protocole CustomDebugStringConvertible et CustomStringConvertible, alors la debugPrint méthode par défaut utilise le contenu debugDescription et le print méthode par défaut utilise description le contenu.

2
frank 6 nov. 2018 à 05:13

Lien de l'article: print-vs-debugprint

Si vous passez un appel réseau et faites un debugPrint(response) au lieu de print(response), vous obtiendrez des informations bien plus précieuses. Consultez l'exemple de code ci-dessous:

Exemple de code : Utilisation de l'API de recherche iTunes

    let urlReq = URLRequest(url: URL(string: "https://itunes.apple.com/search?term=jack+johnson&limit=1")!)

    Alamofire.request(urlReq).responseJSON { (data) in
        print(data)
        print("\n\n\n\n\n\n\n\n\n")
        debugPrint(data)
    }

Sortie de la console (suppression de certains champs de réponse)

Pour imprimer

SUCCESS: {
    resultCount = 1;
    results =     (
                {
            artistId = 909253;
            artistName = "Jack Johnson";
            artistViewUrl = "https://itunes.apple.com/us/artist/jack-johnson/id909253?uo=4";
        }
    );
}

Pour debugPrint

[Request]: GET https://itunes.apple.com/search?term=jack+johnson&limit=1
[Response]: <NSHTTPURLResponse: 0x610000223860> { URL: https://itunes.apple.com/search?term=jack+johnson&limit=1 } { status code: 200, headers {
    "Access-Control-Allow-Origin" = "*";
    "Cache-Control" = "max-age=86345";
    Connection = "keep-alive";
    "Content-Disposition" = "attachment; filename=1.txt";
    "Content-Length" = 1783;
    "Content-Type" = "text/javascript; charset=utf-8";
    Date = "Sat, 23 Sep 2017 14:29:11 GMT";
    "Strict-Transport-Security" = "max-age=31536000";
    Vary = "Accept-Encoding";
    "X-Apple-Partner" = "origin.0";
    "X-Cache" = "TCP_MISS from a23-76-156-143.deploy.akamaitechnologies.com (AkamaiGHost/9.1.0.4-20866905) (-)";
    "X-Cache-Remote" = "TCP_MISS from a23-45-232-92.deploy.akamaitechnologies.com (AkamaiGHost/9.1.0.4-20866905) (-)";
    "X-True-Cache-Key" = "/L/itunes.apple.com/search ci2=limit=1&term=jack+johnson__";
    "apple-originating-system" = MZStoreServices;
    "apple-seq" = 0;
    "apple-timing-app" = "86 ms";
    "apple-tk" = false;
    "x-apple-application-instance" = 1000492;
    "x-apple-application-site" = NWK;
    "x-apple-jingle-correlation-key" = VEF3J3UWCHKUSGPHDZRI6RB2QY;
    "x-apple-orig-url" = "https://itunes.apple.com/search?term=jack+johnson&limit=1";
    "x-apple-request-uuid" = "a90bb4ee-9611-d549-19e7-1e628f443a86";
    "x-apple-translated-wo-url" = "/WebObjects/MZStoreServices.woa/ws/wsSearch?term=jack+johnson&limit=1&urlDesc=";
    "x-content-type-options" = nosniff;
    "x-webobjects-loadaverage" = 0;
} }
[Data]: 1783 bytes
[Result]: SUCCESS: {
    resultCount = 1;
    results =     (
                {
            artistId = 909253;
            artistName = "Jack Johnson";
            artistViewUrl = "https://itunes.apple.com/us/artist/jack-johnson/id909253?uo=4";
        }
    );
}

[Timeline]: Timeline: 

{
  "Request Start Time": 527869893.013,
  "Initial Response Time": 527869893.033,
  "Request Completed Time": 527869893.034,
  "Serialization Completed Time": 527869893.035,
  "Latency": 0.020secs,
  "Request Duration": 0.021secs,
  "Serialization Duration": 0.001secs,
  "Total Duration": 0.021secs
}
13
Abhishek Bedi 23 sept. 2017 à 18:08