2014-09-19 4 views
17

Как вывести значение NSData в Swift? Это NSLog, print или println?Печать NSData в Swift?

Кажется, я могу просто напечатать адрес объекта, а не фактическое его содержимое.

благодарственные

ответ

34

Таким образом, после попытки ряда рекомендаций вокруг сайта, это то, что на самом деле в конечном итоге работая для меня.

Swift 3

let string1 = String(data: jsonData, encoding: String.Encoding.utf8) ?? "Data could not be printed" 
print(string1) 

Swift 1

let string1 = NSString(data: jsonData, encoding: NSUTF8StringEncoding) 
println(string1) 
+0

. Это работает без префикса NS в Swift 2.3. В моем случае 'data' является необязательным, поэтому я использую:' print (String (data: data NSData(), encoding: NSUTF8StringEncoding)) ' –

+0

@ DanielT. проверьте дату вопроса – User

+2

Ничего страшного в том, чтобы задать вопрос вне времени. –

4

Попробуйте NSString

let theString:NSString = NSString(data: someNSData, encoding: NSASCIIStringEncoding) 
println(theString) 

Reference

convenience init(data: NSData, encoding: UInt) 
+0

' Дополнительные аргументы «данные» в вызове – User

+0

@macdonjo никак, он использует 'удобство init (данные: NSData, encoding: UInt)'. Убедитесь, что у вас есть правильная конфигурация. –

1

Если вы хотите только байт (и не знаете, или нет соответствующая строка кодирования) вам могут все еще использовать NSLog в быстром режиме:

NSLog("%@", NSData(bytes: [0x1b], length:1)) 
Смежные вопросы