2017-06-29 62 views
1

我相信,這將指出我的知識差距。但是在S.O.中我沒有看到任何關於此的信息。知識銀行和看基金會的代碼對我來說沒有任何啓發。爲什麼數據和NSData的打印方式不同

基本問題:爲什麼Swift的數據打印方式與NSData不同?

例如

func getData(_ data:Data) { 
    print("The TLV was: \(data as NSData)") 
} 

打印:

The TLV was: <020101> 

但是......

func getData(_ data:Data) { 
    print("The TLV was: \(data)") 
} 

打印:

The TLV was: 3 bytes 

感謝。

+2

因爲它很少有用到打印出含有超過幾個字節以上數據對象的完整輸出。 – rmaddy

+0

hrmm rmaddy似乎是正確的!實踐似乎超過了習慣。討厭鬼。 這是我在搜索其他支持rmaddy的東西時找到的鏈接,並無意中回答了原始問題。 https://stackoverflow.com/questions/40276322/hex-binary-string-conversion-in-swift/40278391#40278391 謝謝rmaddy – addzo

+0

查看Data數據實例的字節的一種方法是使用dump(數據)'(儘管這會打印出十進制的字節,而不是十六進制)。只是橋接到'NSData'是十六進制查看它們的一種不錯而簡單的方法。 – Hamish

回答

0

「來自Swift 3的數據沒有」內置「方法將其內容打印爲十六進制字符串,或者從十六進制字符串創建數據值。」

rmaddy是對的。

另見:

hex/binary string conversion in Swift

相關問題