72 votes

print () vs debugPrint () dans swift

Ceci pourrait être une question simple, mais à cause d’une compréhension claire entre print () et debug () print en rapide, je suis incapable de comprendre où les utiliser.

82voto

Iggy Points 1277

Vous utilisez debugPrint lorsque vous souhaitez plus d'informations sur ce qui est imprimé sur la console. L'information supplémentaire est généralement utile pour le débogage.

print() - Écrit les textes, les représentations des éléments donnés dans la sortie standard.

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

Fondamentalement debugPrint ajoute des informations supplémentaires qui est utile pour le débogage comme le type de l'information, etc.

Un exemple:

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


debugPrint(1...5)
// Prints "CountableClosedRange(1...5)"

28voto

Emptyless Points 1843

À l'aide de print() est une façon d'visuellement voir ce que vous êtes en train de créer. Il n'indique pas "inutile" de l'information qui n'est pas nécessaire de représenter l'imprimé variable.

par exemple

print("test")
// prints: test

À l'aide de debugPrint() toutefois, ajoute le type inféré pour la sortie.

par exemple

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

Notez comment il ajoute les guillemets que vous sachiez que c'est une chaîne de caractères.

Erica Sadun a créé un parfait exemple de la façon dont ces deux fonctions diffèrent: Swift: Enregistrement

18voto

Abhishek Bedi Points 967

Lien de l'Article : impression-vs-debugprint

Si Vous faites un appel réseau et faire un debugPrint(response) au lieu de print(response), vous obtiendrez beaucoup plus d'informations précieuses. Voir ci-dessous un exemple de code:

Exemple de Code : à l'Aide d'iTunes Api de Recherche

    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 (en Enlevant une partie de la réponse champs)

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
}

4voto

frank Points 69

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

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