如果這只是爲了調試的目的,那麼我認爲最快的方法是:
let myGZipNSData = myGZipData as! NSData //I wrote a "!" just for the sample)
print("myGZipNSData: \(myGZipNSData)")
它應該輸出:
myGZipNSData: <5b226d79 41727261 7956616c 75653022 2c226d79 41727261 7956616c 75653122 5d>
這依賴於NSData
-description
方法,打印「<hexValue>
」。 不要依賴它在發佈版本上,幾乎不會依賴於-description
(是的,Apple可以在下一個版本中更改-description
的行爲,它發生在不同的類上)。
得到幾乎相同的結果的其他方式(更安全),你可以檢查這個問題:How to convert Data to hex string in swift你得到你同樣的結果(差不多,不佔空間,並沒有<
/>
)作爲前一個。
其他方式:基本64 使用base64EncodedString()
的Data
方法:
let base64Str = myGZipData?.base64EncodedString()
print("base64Str: \(base64Str!)")
輸出:
base64Str: WyJteUFycmF5VmFsdWUwIiwibXlBcnJheVZhbHVlMSJd
現在,應該有其他方式: 具有詮釋值的陣列表示(間0/255而不是十六進制),但它似乎是用於調試的目的,因此請檢查您是否可以「重現當前的解決方案」(工作/快速實施),我向您提供,並與服務器開發人員覈對什麼是h她/她可以在他/她身邊做比較。
注: 對於此示例的目的,myGZipData
構造是這樣的:
let array = ["myArrayValue0", "myArrayValue1"]
let myGZipData = try? JSONSerialization.data(withJSONObject: array, options:[])
這不是一個真正的GZipData,但我們的目標是迅速擁有Data
對象「足夠大」。
'字符串:(描述:(myGZipData as NSData))'?或base64編碼?或者https://stackoverflow.com/questions/39075043/how-to-convert-data-to-hex-string-in-swift? – Larme
@Larme,謝謝,你能答對嗎?我會趕上它 –