Si cela est juste pour les besoins de débogage, alors je pense que la façon la plus rapide est:
let myGZipNSData = myGZipData as! NSData //I wrote a "!" just for the sample)
print("myGZipNSData: \(myGZipNSData)")
Il devrait afficher:
myGZipNSData: <5b226d79 41727261 7956616c 75653022 2c226d79 41727261 7956616c 75653122 5d>
Cela repose sur la méthode -description
de NSData
qui impriment "<hexValue>
". Ne comptez pas sur elle sur la version de la version, presque jamais compter sur -description
(oui, Apple pourrait changer le comportement de -description
dans la prochaine version.Elle est arrivé sur une classe différente).
Autre moyen (plus sûr) pour obtenir à peu près le même résultat, vous pouvez vérifier cette question: How to convert Data to hex string in swift que vous vous obtenez le même résultat (presque, moins d'espace, et pas <
/>
) que le précédent.
Autre moyen: Base 64 Utilisez la méthode base64EncodedString()
de Data
:
let base64Str = myGZipData?.base64EncodedString()
print("base64Str: \(base64Str!)")
Sortie:
base64Str: WyJteUFycmF5VmFsdWUwIiwibXlBcnJheVZhbHVlMSJd
Maintenant, il devrait y avoir un autre moyen: une représentation de tableau avec des valeurs Int (entre 0/255 au lieu de hex), mais il semble être à des fins de débogage donc vérifiez si vous pouvez "reproduire les solutions actuelles" (travail/mise en œuvre rapide) je vous ai donné, et vérifier avec le développeur du serveur ce que h Il peut aussi faire de son côté pour comparer.
Note: Aux fins de cet échantillon, myGZipData
est construite de cette façon:
let array = ["myArrayValue0", "myArrayValue1"]
let myGZipData = try? JSONSerialization.data(withJSONObject: array, options:[])
Ce n'est pas vraiment un GZipData, mais l'objectif était d'avoir rapidement un « assez grand » objet Data
.
'Chaîne: (décrivant: (myGZipData comme NSData))'? ou encodage base64? Ou https://stackoverflow.com/questions/39075043/how-to-convert-data-to-hex-string-in-swift? – Larme
@Larme, merci, pourriez-vous corriger la réponse? Je vais l'emporter –