2016-10-17 16 views
6

Tất cả những gì tôi muốn làm là lấy một chuỗi và nhận giá trị hex của nó. Tôi đã theo dõi điều này post. Đây là mã tôi có trong sân chơi của tôi:Làm cách nào để in nội dung của một loại dữ liệu bằng Swift?

let str = "Say Hello to My Little Friend" 
let data = str.data(using: String.Encoding.utf16) 
print("\(data!)") 

Tuy nhiên, mã của tôi chỉ in:

"60 byte \ n"

Làm thế nào tôi có thể in các giá trị hex? Để tham khảo, nó phải là:

5361792048656c6c6f20746f204d79204c6974746c6520467269656e64 

Trả lời

12

Chỉ

print("\(data! as NSData)") 

PS: bạn mong đợi hex là .utf8

16

Kể từ Data là một Chuỗi các uint8, bạn có thể lập bản đồ từng byte để một chuỗi và sau đó tham gia cùng họ:

data.map { String(format: "%02x", $0) }.joined() 
+1

tôi thích video này tốt hơn so với chấp nhận câu trả lời vì nó cho phép lập trình viên kiểm soát hoàn toàn định dạng đầu ra. – JeremyP

Các vấn đề liên quan